From: <emm...@us...> - 2008-09-03 09:42:13
|
Revision: 3870 http://fudaa.svn.sourceforge.net/fudaa/?rev=3870&view=rev Author: emmanuel_martin Date: 2008-09-03 09:42:22 +0000 (Wed, 03 Sep 2008) Log Message: ----------- Changement du curseur de d?\195?\169placement de la vue. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/com/memoire/bu/BuResource.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalquePositionnementInteraction.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/com/memoire/bu/BuResource.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/com/memoire/bu/BuResource.java 2008-09-03 09:36:49 UTC (rev 3869) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/com/memoire/bu/BuResource.java 2008-09-03 09:42:22 UTC (rev 3870) @@ -737,46 +737,45 @@ return getCursor(_path,_size,_spot,Cursor.DEFAULT_CURSOR); } - public Cursor getCursor(String _path, int _size, Point _spot, int _default) - { + public Cursor getCursor(String _path, int _size, Point _spot, int _default) { Cursor r=null; - /*if(FuLib.jdk()<1.2) //System.getProperty("java.version").compareTo("1.2")<0) - { - r=Cursor.getPredefinedCursor(_default); - } - else - {*/ - try - { - Image i=getImage(_path,_size); + /* + * if(FuLib.jdk()<1.2) + * //System.getProperty("java.version").compareTo("1.2")<0) { + * r=Cursor.getPredefinedCursor(_default); } else { + */ + try { + /* Pour utiliser une image dont la taille n'est pas specifiee dans le nom, il faut appeler la fonction + * getImage(String) au lieu de getImage(String, int). Donner un '_size' de -1 d\xE9clanche cette propriete. + */ + Image i = null; + if(_size == -1) + i=getImage(_path); + else + i=getImage(_path, _size); + + int size=32; - int size=32; + Toolkit tk=BuLib.HELPER.getToolkit(); - Toolkit tk=BuLib.HELPER.getToolkit(); + i=tk.createImage(new FilteredImageSource(i.getSource(), new CropImageFilter(0, 0, size, size))); - i=tk.createImage - (new FilteredImageSource - (i.getSource(),new CropImageFilter(0,0,size,size))); + if (BuPreferences.BU.getBooleanProperty("cursors.monochrome", FuLib.isUnix())) + i=tk.createImage(new FilteredImageSource(i.getSource(), BuFilters.BW)); - if(BuPreferences.BU.getBooleanProperty - ("cursors.monochrome",FuLib.isUnix())) - i=tk.createImage - (new FilteredImageSource - (i.getSource(),BuFilters.BW)); + /* + * Method m=tk.getClass().getMethod ("createCustomCursor",new Class[] { + * Image.class, Point.class, String.class }); r=(Cursor)m.invoke(tk,new + * Object[] { i,_spot,_path }); + */ + r=tk.createCustomCursor(i, _spot, _path); + } + catch (Exception ex) { + r=Cursor.getPredefinedCursor(_default); + } + // } - /* - Method m=tk.getClass().getMethod - ("createCustomCursor",new Class[] - { Image.class, Point.class, String.class }); - r=(Cursor)m.invoke(tk,new Object[] { i,_spot,_path }); - */ - r=tk.createCustomCursor(i,_spot,_path); - } - catch(Exception ex) - { r=Cursor.getPredefinedCursor(_default); } -// } - return r; } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalquePositionnementInteraction.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalquePositionnementInteraction.java 2008-09-03 09:36:49 UTC (rev 3869) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalquePositionnementInteraction.java 2008-09-03 09:42:22 UTC (rev 3870) @@ -1,212 +1,214 @@ -/* - * @file BCalquePositionnementInteraction.java - * @creation 2000-09-13 - * @modification $Date: 2006-09-19 14:55:45 $ - * @license GNU General Public License 2 - * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail de...@fu... - */ -package org.fudaa.ebli.calque; - -import java.awt.Component; -import java.awt.Cursor; -import java.awt.Graphics; -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; -import java.awt.event.MouseMotionListener; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; - -import org.fudaa.ebli.commun.EbliLib; -import org.fudaa.ebli.geometrie.GrPoint; -import org.fudaa.ebli.geometrie.GrVecteur; -import org.fudaa.ebli.repere.RepereEvent; -import org.fudaa.ebli.repere.RepereEventListener; - -/** - * 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{ - private GrPoint ptOrig_; // Point d'origine du d\xE9placement - private final Set repereEventListeners_; // Listeners de modification de rep\xE8re - private BVueCalque vueCalque_; // VueCalque du calque - - /** - * Cr\xE9ation d'un calque de positionnement. - */ - public BCalquePositionnementInteraction() { - super(); - setDestructible(false); - repereEventListeners_ = new HashSet(); - vueCalque_ = null; - } - - // private Cursor cursor_=new Cursor(Cursor.HAND_CURSOR); - public Cursor getSpecificCursor() { - return new Cursor(Cursor.MOVE_CURSOR); - } - - public String getDescription() { - return EbliLib.getS("D\xE9placer la vue"); - } - - /** - * 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. - */ - 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. - * - * @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) { - if (vueCalque_ != null) { - removeRepereEventListener(vueCalque_); - } - vueCalque_ = _v; - if (vueCalque_ != null) { - addRepereEventListener(vueCalque_); - } - } - } - - /** - * 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 _g le graphics sur lequel dessiner l'icone - * @param _x lieu cible de l'icone (x) - * @param _y lieu cible de l'icone (y) - */ - public void paintIcon(final Component _c, final Graphics _g, final int _x, final int _y) { - super.paintIcon(_c, _g, _x, _y); - } - - /** - * Ajout d'un auditeur \xE0 l'\xE9venement <I>RepereEvent</I>. - * - * @param _listener Auditeur de l'\xE9v\xE8nement - */ - public synchronized void addRepereEventListener(final RepereEventListener _listener) { - repereEventListeners_.add(_listener); - } - - /** - * Suppression d'un auditeur \xE0 l'\xE9venement <I>RepereEvent</I>. - * - * @param _listener Auditeur de l'\xE9v\xE8nement - */ - public synchronized void removeRepereEventListener(final RepereEventListener _listener) { - repereEventListeners_.remove(_listener); - } - - /** - * Notification aux auditeurs qu'un \xE9venement <I>RepereEvent</I> s'est produit. - */ - public synchronized void fireRepereEvent(final RepereEvent _evt) { - for (final Iterator i = repereEventListeners_.iterator(); i.hasNext();) { - ((RepereEventListener) i.next()).repereModifie(_evt); - } - } - - /* - * Ev\xE8nements souris PRESSED => Saisie du point \xE9cran courant DRAGGED => D\xE9placement de la vue en mode affichage - * rapide RELEASED => Trac\xE9 de la vue en mode affichage raffin\xE9 - */ - /* - * Methode invoqu\xE9e quand on appuie sur un bouton de la souris. Saisie de la position \xE9cran courante. - */ - public void mousePressed(final MouseEvent _evt) { - if (isGele() || _evt.isConsumed()) { - return; - } - ptOrig_ = new GrPoint(_evt.getX(), _evt.getY(), 0.); - } - - /* - * Methode invoquee quand on lache un bouton de la souris. Trac\xE9 de la vue en mode affichage raffin\xE9 - */ - public void mouseReleased(final MouseEvent _evt) { - if (isGele() || _evt.isConsumed()) { - return; - } - 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; - } - // 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); - } - - - - /* - * Methode invoqu\xE9e quand on deplace la souris avec un bouton appuy\xE9. D\xE9placement de la vue en mode affichage rapide - */ - public void mouseDragged(final MouseEvent _evt) { - if (isGele() || _evt.isConsumed()) { - return; - } - final GrPoint ptCur = new GrPoint(_evt.getX(), _evt.getY(), 0.); - final GrVecteur v = ptOrig_.soustraction(ptCur); - v.autoApplique(getVersReel()); - if(!vueCalque_.checkTranslation(v)) { - return; - } - v.autoApplique(getVersEcran()); - ptOrig_ = ptCur; - final RepereEvent re = new RepereEvent(this, true); - 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); - } - - /** - * <I>Sans objet</I>. - */ - public void mouseMoved(final MouseEvent _evt) {} - - /** - * <I>Sans objet</I>. - */ - public void mouseClicked(final MouseEvent _evt) {} - - /** - * <I>Sans objet</I>. - */ - public void mouseEntered(final MouseEvent _evt) {} - - /** - * <I>Sans objet</I>. - */ - public void mouseExited(final MouseEvent _evt) {} -} +/* + * @file BCalquePositionnementInteraction.java + * @creation 2000-09-13 + * @modification $Date: 2006-09-19 14:55:45 $ + * @license GNU General Public License 2 + * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail de...@fu... + */ +package org.fudaa.ebli.calque; + +import java.awt.Component; +import java.awt.Cursor; +import java.awt.Point; +import java.awt.Graphics; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; +import java.awt.event.MouseMotionListener; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; + +import org.fudaa.ebli.commun.EbliLib; +import org.fudaa.ebli.geometrie.GrPoint; +import org.fudaa.ebli.geometrie.GrVecteur; +import org.fudaa.ebli.repere.RepereEvent; +import org.fudaa.ebli.repere.RepereEventListener; +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>. + * + * @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{ + private GrPoint ptOrig_; // Point d'origine du d\xE9placement + private final Set repereEventListeners_; // Listeners de modification de rep\xE8re + private BVueCalque vueCalque_; // VueCalque du calque + + /** + * Cr\xE9ation d'un calque de positionnement. + */ + public BCalquePositionnementInteraction() { + super(); + setDestructible(false); + 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"); + } + + /** + * 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. + */ + 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. + * + * @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) { + if (vueCalque_ != null) { + removeRepereEventListener(vueCalque_); + } + vueCalque_ = _v; + if (vueCalque_ != null) { + addRepereEventListener(vueCalque_); + } + } + } + + /** + * 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 _g le graphics sur lequel dessiner l'icone + * @param _x lieu cible de l'icone (x) + * @param _y lieu cible de l'icone (y) + */ + public void paintIcon(final Component _c, final Graphics _g, final int _x, final int _y) { + super.paintIcon(_c, _g, _x, _y); + } + + /** + * Ajout d'un auditeur \xE0 l'\xE9venement <I>RepereEvent</I>. + * + * @param _listener Auditeur de l'\xE9v\xE8nement + */ + public synchronized void addRepereEventListener(final RepereEventListener _listener) { + repereEventListeners_.add(_listener); + } + + /** + * Suppression d'un auditeur \xE0 l'\xE9venement <I>RepereEvent</I>. + * + * @param _listener Auditeur de l'\xE9v\xE8nement + */ + public synchronized void removeRepereEventListener(final RepereEventListener _listener) { + repereEventListeners_.remove(_listener); + } + + /** + * Notification aux auditeurs qu'un \xE9venement <I>RepereEvent</I> s'est produit. + */ + public synchronized void fireRepereEvent(final RepereEvent _evt) { + for (final Iterator i = repereEventListeners_.iterator(); i.hasNext();) { + ((RepereEventListener) i.next()).repereModifie(_evt); + } + } + + /* + * Ev\xE8nements souris PRESSED => Saisie du point \xE9cran courant DRAGGED => D\xE9placement de la vue en mode affichage + * rapide RELEASED => Trac\xE9 de la vue en mode affichage raffin\xE9 + */ + /* + * Methode invoqu\xE9e quand on appuie sur un bouton de la souris. Saisie de la position \xE9cran courante. + */ + public void mousePressed(final MouseEvent _evt) { + if (isGele() || _evt.isConsumed()) { + return; + } + ptOrig_ = new GrPoint(_evt.getX(), _evt.getY(), 0.); + } + + /* + * Methode invoquee quand on lache un bouton de la souris. Trac\xE9 de la vue en mode affichage raffin\xE9 + */ + public void mouseReleased(final MouseEvent _evt) { + if (isGele() || _evt.isConsumed()) { + return; + } + 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; + } + // 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); + } + + + + /* + * Methode invoqu\xE9e quand on deplace la souris avec un bouton appuy\xE9. D\xE9placement de la vue en mode affichage rapide + */ + public void mouseDragged(final MouseEvent _evt) { + if (isGele() || _evt.isConsumed()) { + return; + } + final GrPoint ptCur = new GrPoint(_evt.getX(), _evt.getY(), 0.); + final GrVecteur v = ptOrig_.soustraction(ptCur); + v.autoApplique(getVersReel()); + if(!vueCalque_.checkTranslation(v)) { + return; + } + v.autoApplique(getVersEcran()); + ptOrig_ = ptCur; + final RepereEvent re = new RepereEvent(this, true); + 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); + } + + /** + * <I>Sans objet</I>. + */ + public void mouseMoved(final MouseEvent _evt) {} + + /** + * <I>Sans objet</I>. + */ + public void mouseClicked(final MouseEvent _evt) {} + + /** + * <I>Sans objet</I>. + */ + public void mouseEntered(final MouseEvent _evt) {} + + /** + * <I>Sans objet</I>. + */ + public void mouseExited(final MouseEvent _evt) {} +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |