|
From: <bma...@us...> - 2011-10-11 08:49:00
|
Revision: 6516
http://fudaa.svn.sourceforge.net/fudaa/?rev=6516&view=rev
Author: bmarchan
Date: 2011-10-11 08:48:54 +0000 (Tue, 11 Oct 2011)
Log Message:
-----------
Ameloiration diverse de la fenetre de comparaison
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/action/SceneCompareProfileAction.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionProfil.java
trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueCourbe.java
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/VueTableau.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-11 08:42:27 UTC (rev 6515)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/MdlCompareProfilePanel.java 2011-10-11 08:48:54 UTC (rev 6516)
@@ -23,7 +23,6 @@
import org.fudaa.ctulu.CtuluListSelectionListener;
import org.fudaa.ctulu.gui.CtuluDialogPanel;
-import org.fudaa.ctulu.CtuluUI;
import org.fudaa.ebli.commun.EbliFormatterInterface;
import org.fudaa.fudaa.modeleur.action.MdlCompareProfileSet;
import org.fudaa.fudaa.modeleur.modeleur1d.controller.ProfileSelectionModel;
@@ -43,7 +42,7 @@
*/
public class MdlCompareProfilePanel extends CtuluDialogPanel implements VueProfilI {
- CtuluUI ui_;
+ MdlVisuPanel pnCalques_;
CtuluCommandManager mng_;
CtuluCommandComposite cmp_;
EbliFormatterInterface fmt_;
@@ -109,16 +108,15 @@
}
}
- public MdlCompareProfilePanel(CtuluUI _ui, CtuluCommandManager _mng, EbliFormatterInterface _fmt) {
- mng_=_mng;
+ public MdlCompareProfilePanel(MdlVisuPanel _pnCalques) {
+ pnCalques_=_pnCalques;
+ mng_=pnCalques_.getCmdMng();
+ fmt_=pnCalques_.getEbliFormatter();
ctrl_=new ProfileSetController();
// La commande est stock\xE9e \xE0 la fin, ou elle est d\xE9jou\xE9e.
- cmp_=new CtuluCommandComposite(MdlResource.getS("Comparer les profils"));
- fmt_=_fmt;
- ui_=_ui;
-
-
+ initCommandComposite();
+
// Le panneau des profils en travers
viewCurve_=new VueCourbe(this, null);
viewCurve_.setPrevNextVisible(true);
@@ -148,7 +146,7 @@
});
// Le panneau de la vue 2D
- viewProfSet_=new VueProfileSet(_ui);
+ viewProfSet_=new VueProfileSet(pnCalques_.getCtuluUI());
viewProfSet_.addSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
int indsel=viewProfSet_.getSelectedProfile();
@@ -190,6 +188,10 @@
});
}
+ private void initCommandComposite() {
+ cmp_=new CtuluCommandComposite(MdlResource.getS("Comparer les profils"));
+ }
+
/**
* Changement de profil set. Le controller est sens\xE9 avoir ce m\xEAme
* profile set.
@@ -218,14 +220,20 @@
@Override
public void apply() {
+ viewProfSet_.restoreZoneListeners();
// La commande container est stock\xE9e pour \xEAtre \xE9ventuellement d\xE9jou\xE9.
mng_.addCmd(cmp_.getSimplify());
+ initCommandComposite();
+ // B.M. : C'est pas terrible, mais ca redessine la vue 2D.
+ pnCalques_.clearSelection();;
}
@Override
public boolean cancel() {
+ viewProfSet_.restoreZoneListeners();
// On d\xE9joue tout ce qui a \xE9t\xE9 fait.
cmp_.undo();
+ initCommandComposite();
return true;
}
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneCompareProfileAction.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneCompareProfileAction.java 2011-10-11 08:42:27 UTC (rev 6515)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/action/SceneCompareProfileAction.java 2011-10-11 08:48:54 UTC (rev 6516)
@@ -112,7 +112,7 @@
}
if (pnProfiles_==null)
- pnProfiles_=new MdlCompareProfilePanel(pnCalques_.getCtuluUI(), pnCalques_.getCmdMng(), pnCalques_.getEbliFormatter());
+ pnProfiles_=new MdlCompareProfilePanel(pnCalques_);
pnProfiles_.setProfileSet(profSet);
pnProfiles_.setSelectedProfile(indsel);
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionProfil.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionProfil.java 2011-10-11 08:42:27 UTC (rev 6515)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/PnGestionProfil.java 2011-10-11 08:48:54 UTC (rev 6516)
@@ -44,6 +44,7 @@
/** Tableau d'affichage des biefs. */
protected JTable tableProfils_;
private TableProfilModel tbModel_;
+ private boolean isNameEditable_=false;
public PnGestionProfil(ProfileSetControllerI _controllerProfil) {
this(_controllerProfil,true);
@@ -110,6 +111,7 @@
// pnButtons.add(btFusionner);
if (_showButtons) {
add(pnButtons, BuBorderLayout.EAST);
+ isNameEditable_=true;
}
setPreferredSize(new Dimension(200, 200));
}
@@ -169,7 +171,7 @@
public boolean isCellEditable(int rowIndex, int columnIndex) {
if (columnIndex==0) return false;
- return true;
+ return isNameEditable_;
}
public void setValueAt(Object value, int rowIndex, int columnIndex) {
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueCourbe.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueCourbe.java 2011-10-11 08:42:27 UTC (rev 6515)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueCourbe.java 2011-10-11 08:48:54 UTC (rev 6516)
@@ -990,21 +990,27 @@
* modifi\xE9.
*/
private void buildCurves() {
+ Color c;
+
+ c=Color.YELLOW.darker();
prevCurve_=new EGCourbeSimple(axeY_, new CourbeGeomModel());
- prevCurve_.setAspectContour(Color.YELLOW.darker());
- prevCurve_.setIconeModel(new TraceIconModel(TraceIcon.CARRE_PLEIN, 2, Color.YELLOW.darker()));
- prevCurve_.setDisplayPointLabels(true);
+ prevCurve_.setLigneModel(new TraceLigneModel(TraceLigne.TIRETE, 0.5f, c));
+ prevCurve_.setAspectContour(c);
+ prevCurve_.setIconeModel(new TraceIconModel(TraceIcon.CARRE_PLEIN, 1, c));
grapheModel_.addCourbe(prevCurve_, null);
+ c=Color.GREEN.darker();
nextCurve_=new EGCourbeSimple(axeY_, new CourbeGeomModel());
- nextCurve_.setAspectContour(Color.GREEN.darker());
- nextCurve_.setIconeModel(new TraceIconModel(TraceIcon.CARRE_PLEIN, 2, Color.GREEN.darker()));
- nextCurve_.setDisplayPointLabels(true);
+ nextCurve_.setLigneModel(new TraceLigneModel(TraceLigne.TIRETE, 0.5f, c));
+ nextCurve_.setAspectContour(c);
+ nextCurve_.setIconeModel(new TraceIconModel(TraceIcon.CARRE_PLEIN, 1, c));
grapheModel_.addCourbe(nextCurve_, null);
+ c=Color.RED;
courbe_=new EGCourbeSimple(axeY_, courbeModel_=new CourbeGeomModel());
- courbe_.setAspectContour(Color.RED);
- courbe_.setIconeModel(new TraceIconModel(TraceIcon.CARRE_PLEIN,2,Color.RED));
+ courbe_.setLigneModel(new TraceLigneModel(TraceLigne.LISSE, 1, c));
+ courbe_.setAspectContour(c);
+ courbe_.setIconeModel(new TraceIconModel(TraceIcon.CARRE_PLEIN,2,c));
courbe_.setDisplayPointLabels(true);
grapheModel_.addCourbe(courbe_, null);
}
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-11 08:42:27 UTC (rev 6515)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueProfileSet.java 2011-10-11 08:48:54 UTC (rev 6516)
@@ -23,6 +23,7 @@
import javax.swing.event.ListSelectionListener;
import org.fudaa.ctulu.CtuluUI;
import org.fudaa.ctulu.gis.GISZoneCollectionLigneBrisee;
+import org.fudaa.ctulu.gis.GISZoneListener;
import org.fudaa.ebli.calque.ZEbliCalquesPanel;
import org.fudaa.ebli.calque.ZSelectionEvent;
import org.fudaa.ebli.calque.ZSelectionListener;
@@ -48,6 +49,8 @@
List<MdlLayer2dProfile> layers_=new ArrayList<MdlLayer2dProfile>();
// MdlLayer2dProfile profils_;
List<GISZoneCollectionLigneBrisee> zones_=new ArrayList<GISZoneCollectionLigneBrisee>();
+ /** La liste des listeners de zones */
+ List<GISZoneListener> zonesListeners_=new ArrayList<GISZoneListener>();
/** Le profil set associ\xE9 */
MdlCompareProfileSet profSet;
/** Le composant des calques */
@@ -57,10 +60,9 @@
/** 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.
+ * qui ne sont pas concern\xE9s par la vue.
*/
class MdlProfileLayerModel extends MdlModel2dProfile {
HashSet<Integer> idxVisibles=new HashSet<Integer>();
@@ -146,8 +148,12 @@
// On construit autant de calques qu'il y a de zones. Les profils n'appartenant
// pas au profil set sont rendus invisibles.
zones_.clear();
+ zonesListeners_.clear();
layers_.clear();
+ pnLayers_.removeAllCalqueDonnees();
+ if (profSet==null) return;
+
List<MdlProfileLayerModel> mdls=new ArrayList<MdlProfileLayerModel>();
for (int i=0; i<profSet.getNbProfil(); i++) {
@@ -155,6 +161,7 @@
int index=zones_.indexOf(zone);
MdlProfileLayerModel mdl;
if (index==-1) {
+ zonesListeners_.add(zone.getListener());
mdl=new MdlProfileLayerModel(zone);
zones_.add(zone);
mdls.add(mdl);
@@ -166,7 +173,6 @@
mdl.setProfileId(profSet.getProfil(i).getGeomId(), i);
}
- pnLayers_.removeAllCalqueDonnees();
for (int i=0; i<mdls.size(); i++) {
MdlLayer2dProfile layer=new MdlLayer2dProfile(null);
layer.modele(mdls.get(i));
@@ -177,8 +183,23 @@
pnLayers_.restaurer();
}
+ /**
+ * Restaure les listeners de zone, puisqu'un seul listener peut \xEAtre donn\xE9
+ * par zone.
+ */
+ public void restoreZoneListeners() {
+ for (int i=0; i<zonesListeners_.size(); i++) {
+ zones_.get(i).setListener(zonesListeners_.get(i));
+ }
+ }
+
public void setProfilSet(MdlCompareProfileSet _profSet) {
if (profSet==_profSet) return;
+
+ if (profSet!=null) {
+ restoreZoneListeners();
+ }
+
profSet=_profSet;
selProfilId=-1;
Modified: trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueTableau.java
===================================================================
--- trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueTableau.java 2011-10-11 08:42:27 UTC (rev 6515)
+++ trunk/soft/fudaa-modeleur/src/main/java/org/fudaa/fudaa/modeleur/modeleur1d/view/VueTableau.java 2011-10-11 08:48:54 UTC (rev 6516)
@@ -198,7 +198,8 @@
@Override
public void valueChanged(ListSelectionEvent e) {
super.valueChanged(e);
- scrollRectToVisible(getCellRect(getSelectionModel().getMaxSelectionIndex(), 0, false));
+ if (getSelectionModel().getMaxSelectionIndex()!=-1)
+ scrollRectToVisible(getCellRect(getSelectionModel().getMaxSelectionIndex(), 0, false));
}
};
table_.getColumnModel().getColumn(0).setCellRenderer(new DefaultTableCellRenderer(){
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|