|
From: <bma...@us...> - 2011-10-10 15:00:15
|
Revision: 6506
http://fudaa.svn.sourceforge.net/fudaa/?rev=6506&view=rev
Author: bmarchan
Date: 2011-10-10 15:00:08 +0000 (Mon, 10 Oct 2011)
Log Message:
-----------
Fix : Pb d'evenements mal intercept?\195?\169s
Modified Paths:
--------------
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCompareProfilePanel.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueProfileSet.java
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCompareProfilePanel.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCompareProfilePanel.java 2011-10-10 14:27:29 UTC (rev 6505)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCompareProfilePanel.java 2011-10-10 15:00:08 UTC (rev 6506)
@@ -23,8 +23,6 @@
import org.fudaa.ctulu.gui.CtuluDialogPanel;
import org.fudaa.ctulu.CtuluUI;
-import org.fudaa.ebli.calque.ZSelectionEvent;
-import org.fudaa.ebli.calque.ZSelectionListener;
import org.fudaa.ebli.commun.EbliFormatterInterface;
import org.fudaa.fudaa.modeleur.action.MdlCompareProfileSet;
import org.fudaa.fudaa.modeleur.modeleur1d.controller.ProfileSetControllerI;
@@ -92,26 +90,19 @@
// Le panneau de la vue 2D
viewProfSet_=new VueProfileSet(_ui);
viewProfSet_.setProfilSet((MdlCompareProfileSet)_ctrl.getProfilSet());
- viewProfSet_.addSelectionListener(new ZSelectionListener() {
- public void selectionChanged(ZSelectionEvent _evt) {
- if (listenEventSelection_) {
- listenEventSelection_=false;
- int indsel=viewProfSet_.getSelectedProfile();
- _ctrl.getProfilSelectionModel().setSelectedProfil(indsel);
- listenEventSelection_=true;
- }
+ viewProfSet_.addSelectionListener(new ListSelectionListener() {
+ public void valueChanged(ListSelectionEvent e) {
+ int indsel=viewProfSet_.getSelectedProfile();
+ _ctrl.getProfilSelectionModel().setSelectedProfil(indsel);
}
});
_ctrl.getProfilSelectionModel().addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
- if (listenEventSelection_) {
- listenEventSelection_=false;
- int idxProf=_ctrl.getProfilSelectionModel().getSelectedProfil();
- viewCurve_.setSelectedProfile(idxProf);
- viewTable_.setProfil(_ctrl.getProfilSet().getProfil(idxProf));
- viewProfSet_.setSelectedProfile(idxProf);
- }
+ int idxProf=_ctrl.getProfilSelectionModel().getSelectedProfil();
+ viewCurve_.setSelectedProfile(idxProf);
+ viewTable_.setProfil(_ctrl.getProfilSet().getProfil(idxProf));
+ viewProfSet_.setSelectedProfile(idxProf);
}
});
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueProfileSet.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueProfileSet.java 2011-10-10 14:27:29 UTC (rev 6505)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueProfileSet.java 2011-10-10 15:00:08 UTC (rev 6506)
@@ -15,12 +15,16 @@
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import javax.swing.JComponent;
import javax.swing.JPanel;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
import org.fudaa.ctulu.CtuluUI;
import org.fudaa.ctulu.gis.GISZoneCollectionLigneBrisee;
import org.fudaa.ebli.calque.ZEbliCalquesPanel;
+import org.fudaa.ebli.calque.ZSelectionEvent;
import org.fudaa.ebli.calque.ZSelectionListener;
import org.fudaa.ebli.commun.EbliLib;
import org.fudaa.fudaa.modeleur.action.MdlCompareProfileSet;
@@ -50,7 +54,10 @@
ZEbliCalquesPanel pnLayers_;
/** Le profil selectionn\xE9 */
int selProfilId=-1;
+ /** Les listeners de selection chang\xE9e */
+ Set<ListSelectionListener> listeners_=new HashSet<ListSelectionListener>();
+
/**
* Un modele de layer sp\xE9cifique pour ne pas visualiser les profils des zones
* qui ne sont concern\xE9s par la vue.
@@ -88,6 +95,20 @@
pnLayers_=new ZEbliCalquesPanel(_impl);
pnLayers_.getScene().setRestrictedToCalqueActif(false);
+ pnLayers_.getScene().addSelectionListener(new ZSelectionListener() {
+ public void selectionChanged(ZSelectionEvent _evt) {
+ int idScene=pnLayers_.getScene().getLayerSelection().getMinIndex();
+ if (idScene==-1) {
+ selProfilId=-1;
+ }
+ else {
+ MdlProfileLayerModel mdl=(MdlProfileLayerModel)pnLayers_.getScene().getLayerForId(idScene).modeleDonnees();
+ int idGeom=pnLayers_.getScene().sceneId2LayerId(idScene);
+ selProfilId=mdl.getProfileId(idGeom);
+ }
+ fireSelectionChanged();
+ }
+ });
List<JComponent> buttons=EbliLib.updateToolButtons(pnLayers_.getController().getActions(), null);
BuSpecificBar tb=new BuSpecificBar();
@@ -99,13 +120,19 @@
setPreferredSize(new Dimension(200,200));
}
- public void addSelectionListener(ZSelectionListener _l) {
- pnLayers_.getScene().addSelectionListener(_l);
+ public void addSelectionListener(ListSelectionListener _l) {
+ listeners_.add(_l);
}
- public void removeSelectionListener(ZSelectionListener _l) {
- pnLayers_.getScene().removeSelectionListener(_l);
+ public void removeSelectionListener(ListSelectionListener _l) {
+ listeners_.remove(_l);
}
+
+ private void fireSelectionChanged() {
+ for (ListSelectionListener l : listeners_) {
+ l.valueChanged(new ListSelectionEvent(this, getSelectedProfile(), getSelectedProfile(), false));
+ }
+ }
public void restaurer() {
pnLayers_.restaurer();
@@ -177,11 +204,6 @@
}
public int getSelectedProfile() {
- int idScene=pnLayers_.getScene().getLayerSelection().getMinIndex();
- if (idScene==-1) return -1;
-
- MdlProfileLayerModel mdl=(MdlProfileLayerModel)pnLayers_.getScene().getLayerForId(idScene).modeleDonnees();
- int idGeom=pnLayers_.getScene().sceneId2LayerId(idScene);
- return mdl.getProfileId(idGeom);
+ return selProfilId;
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|