|
From: <de...@us...> - 2012-09-25 13:33:46
|
Revision: 7656
http://fudaa.svn.sourceforge.net/fudaa/?rev=7656&view=rev
Author: deniger
Date: 2012-09-25 13:33:35 +0000 (Tue, 25 Sep 2012)
Log Message:
-----------
ajout fonction ajout point
Modified Paths:
--------------
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/BCalquePositionnementInteraction.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZEbliCalquePanelController.java
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/BCalquePositionnementInteraction.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/BCalquePositionnementInteraction.java 2012-09-25 13:08:28 UTC (rev 7655)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/BCalquePositionnementInteraction.java 2012-09-25 13:33:35 UTC (rev 7656)
@@ -18,6 +18,7 @@
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
+import javax.swing.SwingUtilities;
import org.fudaa.ebli.commun.EbliLib;
import org.fudaa.ebli.geometrie.GrPoint;
@@ -27,18 +28,18 @@
import org.fudaa.ebli.ressource.EbliResource;
/**
- * Un calque pour la navigation dans la vue calque. Il permet de d\xE9placer interactivement la zone visualis\xE9e par
- * glisser/d\xE9placer.
- * <p>
- * Le deplacement provoque la diffusion d'un \xE9v\xE8nement <I>RepereEvent</I>.
+ * Un calque pour la navigation dans la vue calque. Il permet de d\xE9placer interactivement la zone visualis\xE9e par glisser/d\xE9placer. <p> Le deplacement
+ * provoque la diffusion d'un \xE9v\xE8nement <I>RepereEvent</I>.
*
* @version $Id: BCalquePositionnementInteraction.java,v 1.12 2006-09-19 14:55:45 deniger Exp $
* @author Bertrand Marchand
*/
-public class BCalquePositionnementInteraction extends BCalqueInteraction implements MouseListener, MouseMotionListener{
+public class BCalquePositionnementInteraction extends BCalqueInteraction implements MouseListener, MouseMotionListener {
+
private GrPoint ptOrig_; // Point d'origine du d\xE9placement
- private final Set repereEventListeners_; // Listeners de modification de rep\xE8re
+ private final Set repereEventListeners_; // Listeners de modification de rep\xE8re
private BVueCalque vueCalque_; // VueCalque du calque
+ private boolean restoreDefaultLayer;
/**
* Cr\xE9ation d'un calque de positionnement.
@@ -49,12 +50,11 @@
repereEventListeners_ = new HashSet();
vueCalque_ = null;
}
-
-
+
public Cursor getSpecificCursor() {
return EbliResource.EBLI.getCursor("main", -1, new Point(8, 8));
}
-
+
public String getDescription() {
return EbliLib.getS("D\xE9placer la vue");
}
@@ -62,19 +62,17 @@
/**
* Retourne la VueCalque contenant le calque.
*
- * @return La <code>BVueCalque</code> contenant le calque. <code>null</code> si le calque n'a pas encore \xE9t\xE9
- * affect\xE9 \xE0 une fen\xEAtre de vue.
+ * @return La <code>BVueCalque</code> contenant le calque. <code>null</code> si le calque n'a pas encore \xE9t\xE9 affect\xE9 \xE0 une fen\xEAtre de vue.
*/
public BVueCalque getVueCalque() {
return vueCalque_;
}
/**
- * D\xE9finit la VueCalque contenant le calque. Les \xE9v\xE9nements <code>RepereEvent</code> g\xE9n\xE9r\xE9s par le calque sont
- * automatiquement envoy\xE9s vers la VueCalque.
+ * D\xE9finit la VueCalque contenant le calque. Les \xE9v\xE9nements
+ * <code>RepereEvent</code> g\xE9n\xE9r\xE9s par le calque sont automatiquement envoy\xE9s vers la VueCalque.
*
- * @param _v La <code>BVueCalque</code> contenant le calque. Peut \xEAtre <code>null</code> si le calque n'a plus
- * affect\xE9 \xE0 une fen\xEAtre de vue.
+ * @param _v La <code>BVueCalque</code> contenant le calque. Peut \xEAtre <code>null</code> si le calque n'a plus affect\xE9 \xE0 une fen\xEAtre de vue.
*/
public void setVueCalque(final BVueCalque _v) {
if (vueCalque_ != _v) {
@@ -91,8 +89,7 @@
/**
* Dessin de l'icone.
*
- * @param _c composant dont l'icone peut deriver des proprietes (couleur, ...). Ce parametre peut etre <I>null</I>.
- * Il est ignore ici.
+ * @param _c composant dont l'icone peut deriver des proprietes (couleur, ...). Ce parametre peut etre <I>null</I>. Il est ignore ici.
* @param _g le graphics sur lequel dessiner l'icone
* @param _x lieu cible de l'icone (x)
* @param _y lieu cible de l'icone (y)
@@ -136,6 +133,13 @@
* Methode invoqu\xE9e quand on appuie sur un bouton de la souris. Saisie de la position \xE9cran courante.
*/
public void mousePressed(final MouseEvent _evt) {
+ restoreDefaultLayer = false;
+ if (SwingUtilities.isMiddleMouseButton(_evt)) {
+ if (isGele()) {
+ restoreDefaultLayer = true;
+ }
+ setGele(false);
+ }
if (isGele() || _evt.isConsumed()) {
return;
}
@@ -151,24 +155,28 @@
}
final GrPoint ptCur = new GrPoint(_evt.getX(), _evt.getY(), 0.);
final GrVecteur v = ptOrig_.soustraction(ptCur);
- if(!vueCalque_.checkTranslation(v.applique(vueCalque_.getVersReel()))) {
- v.x_=0;
- v.y_=0;
+ if (!vueCalque_.checkTranslation(v.applique(vueCalque_.getVersReel()))) {
+ v.x_ = 0;
+ v.y_ = 0;
}
// v.autoApplique(getVersReel());
ptOrig_ = ptCur;
-
-
+
+
final RepereEvent re = new RepereEvent(this, false);
re.ajouteTransformation(RepereEvent.TRANS_X, v.x_, true);
// B.M. 20/09/2000 La translation est invers\xE9e suivant y en attendant de
// comprendre pourquoi
re.ajouteTransformation(RepereEvent.TRANS_Y, -v.y_, true);
fireRepereEvent(re);
+ if (restoreDefaultLayer) {
+ restoreDefaultLayer = false;
+ if (defaultCalqueInteraction != null) {
+ defaultCalqueInteraction.setGele(false);
+ }
+ }
}
-
-
/*
* Methode invoqu\xE9e quand on deplace la souris avec un bouton appuy\xE9. D\xE9placement de la vue en mode affichage rapide
*/
@@ -179,7 +187,7 @@
final GrPoint ptCur = new GrPoint(_evt.getX(), _evt.getY(), 0.);
final GrVecteur v = ptOrig_.soustraction(ptCur);
v.autoApplique(getVersReel());
- if(!vueCalque_.checkTranslation(v)) {
+ if (!vueCalque_.checkTranslation(v)) {
return;
}
v.autoApplique(getVersEcran());
@@ -195,20 +203,29 @@
/**
* <I>Sans objet</I>.
*/
- public void mouseMoved(final MouseEvent _evt) {}
+ public void mouseMoved(final MouseEvent _evt) {
+ }
/**
* <I>Sans objet</I>.
*/
- public void mouseClicked(final MouseEvent _evt) {}
+ public void mouseClicked(final MouseEvent _evt) {
+ }
/**
* <I>Sans objet</I>.
*/
- public void mouseEntered(final MouseEvent _evt) {}
+ public void mouseEntered(final MouseEvent _evt) {
+ }
/**
* <I>Sans objet</I>.
*/
- public void mouseExited(final MouseEvent _evt) {}
+ public void mouseExited(final MouseEvent _evt) {
+ }
+ BCalqueInteraction defaultCalqueInteraction;
+
+ void setDefaultCalqueInteraction(BCalqueInteraction interaction) {
+ this.defaultCalqueInteraction = interaction;
+ }
}
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZEbliCalquePanelController.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZEbliCalquePanelController.java 2012-09-25 13:08:28 UTC (rev 7655)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZEbliCalquePanelController.java 2012-09-25 13:33:35 UTC (rev 7656)
@@ -570,6 +570,7 @@
// Calque de d\xE9placement de vue
cqDepVueI_ = new BCalquePositionnementInteraction();
cqDepVueI_.setName("cqDEPLACEMENT_VUE-I");
+ cqDepVueI_.setDefaultCalqueInteraction(cqSelectionI_);
cqDepVueI_.setTitle(EbliLib.getS("D\xE9placement de vue"));
cqDepVueI_.setVueCalque(pn_.getVueCalque());
cqDepVueI_.setGele(true);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|