From: <bma...@us...> - 2008-11-04 17:46:12
|
Revision: 4166 http://fudaa.svn.sourceforge.net/fudaa/?rev=4166&view=rev Author: bmarchan Date: 2008-11-04 17:46:05 +0000 (Tue, 04 Nov 2008) Log Message: ----------- Selection de la g?\195?\169om?\195?\169trie/sommet suivant/pr?\195?\169c?\195?\169dent par raccourci clavier. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/com/memoire/bu/BuInternalFrame.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonnees.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueGeometry.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueLigneBrisee.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZEbliCalquesPanel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZScene.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZEditorDefault.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZSceneEditor.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigVisuPanel.java Added Paths: ----------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/com/memoire/bu/crystal22_avancer2.png branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/com/memoire/bu/crystal_avancer2.png branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneSelectNextAction.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneSelectPreviousAction.java Property Changed: ---------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/com/memoire/bu/BuInternalFrame.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonnees.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZEbliCalquesPanel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZScene.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/com/memoire/bu/BuInternalFrame.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/com/memoire/bu/BuInternalFrame.java 2008-11-04 16:49:39 UTC (rev 4165) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/com/memoire/bu/BuInternalFrame.java 2008-11-04 17:46:05 UTC (rev 4166) @@ -1,5 +1,5 @@ /** - * @modification $Date: 2007-05-04 13:41:57 $ + * @modification $Date$ * @statut unstable * @file BuInternalFrame.java * @version 0.43 @@ -275,11 +275,23 @@ return STRING0; } + /** + * Retourne les menus sp\xE9cifiques pour la fenetre. + * Les menus sp\xE9cifiques sont switch\xE9s d\xE9s que la fenetre passe de l'\xE9tat actif \xE0 inactif + * et inversement. Ils sont ajout\xE9s dans la barre de menus. + * @return Les menus sp\xE9cifiques. + */ public JMenu[] getSpecificMenus() { return JMENU0; } + /** + * Retourne les boutons outils sp\xE9cifiques pour la fenetre. + * Les outils sp\xE9cifiques sont switch\xE9s d\xE9s que la fenetre passe de l'\xE9tat actif \xE0 inactif + * et inversement. Ils remplacent les outils existants. + * @return Les composants sp\xE9cifiques. + */ public JComponent[] getSpecificTools() { return JCOMPONENT0; Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/com/memoire/bu/BuInternalFrame.java ___________________________________________________________________ Added: svn:keywords + Date Revision Author URL Id Added: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/com/memoire/bu/crystal22_avancer2.png =================================================================== (Binary files differ) Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/com/memoire/bu/crystal22_avancer2.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: svn:keywords + Date Revision Author URL Id Added: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/com/memoire/bu/crystal_avancer2.png =================================================================== (Binary files differ) Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/com/memoire/bu/crystal_avancer2.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: svn:keywords + Date Revision Author URL Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonnees.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonnees.java 2008-11-04 16:49:39 UTC (rev 4165) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonnees.java 2008-11-04 17:46:05 UTC (rev 4166) @@ -1,6 +1,6 @@ /** * @creation 2002-08-27 - * @modification $Date: 2007-05-04 13:49:43 $ + * @modification $Date$ * @license GNU General Public License 2 * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne * @mail de...@fu... @@ -23,7 +23,7 @@ * Un calque de base pour tous les nouveaux calques bases sur les modeles. Ce calque permet de definir en plus si * l'affichage doit etre total,inutile ou seulement la selection. * - * @version $Id: ZCalqueAffichageDonnees.java,v 1.39 2007-05-04 13:49:43 deniger Exp $ + * @version $Id$ * @author Fred Deniger */ public abstract class ZCalqueAffichageDonnees extends ZCalqueAffichageDonneesAbstract { @@ -230,6 +230,11 @@ */ public abstract CtuluListSelection selection(LinearRing _poly, int _mode); + /** + * Selectionne les objets d'indice donn\xE9s. + * @param _idx Les indices a selectionner. + * @return true si une selection a \xE9t\xE9 effectu\xE9e. + */ public boolean setSelection(final int[] _idx) { if (_idx == null) { return false; @@ -252,6 +257,29 @@ return r; } + /** + * Selectionne l'objet suivant de l'objet en cours. + * @return true si la selection a \xE9t\xE9 modifi\xE9e. + */ + public boolean selectNext() { + if (isSelectionEmpty()) return false; + int idx=getLayerSelection().getMaxIndex(); + if (idx>=modeleDonnees().getNombre()-1) return false; + return setSelection(new int[]{idx+1}); + } + + + /** + * Selectionne l'objet suivant de l'objet en cours. + * @return true si la selection a \xE9t\xE9 modifi\xE9e. + */ + public boolean selectPrevious() { + if (isSelectionEmpty()) return false; + int idx=getLayerSelection().getMinIndex(); + if (idx<=0) return false; + return setSelection(new int[]{idx-1}); + } + public void geometryAction(Object _source, int _idx, Geometry _geom, int _action) { // Une g\xE9om\xE9trie a \xE9t\xE9 ajout\xE9e, supprim\xE9e ou ses points la composant ont \xE9t\xE9 // modifi\xE9s, donc on repaint le tout. Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonnees.java ___________________________________________________________________ Added: svn:keywords + Date Revision Author URL Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueGeometry.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueGeometry.java 2008-11-04 16:49:39 UTC (rev 4165) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueGeometry.java 2008-11-04 17:46:05 UTC (rev 4166) @@ -886,6 +886,56 @@ return false; } + public boolean selectNext() { + if (!isAtomicMode_) { + return super.selectNext(); + } + // Ne fonctionne que sur une seule g\xE9om\xE9trie a la fois. + else { + if (selectionMulti_==null) + return false; + if (selectionMulti_.getNbListSelected()!=1) + return false; + + int idxGeom=selectionMulti_.getIdxSelected()[0]; + + CtuluListSelection s=selectionMulti_.get(idxGeom); + if (s==null) + return false; + int idx=s.getMaxIndex(); + if (idx>=modeleDonnees().getNbPointForGeometry(idxGeom)-1) + return false; + s.setSelectionInterval(idx+1,idx+1); + fireSelectionEvent(); + return true; + } + } + + public boolean selectPrevious() { + if (!isAtomicMode_) { + return super.selectPrevious(); + } + // Ne fonctionne que sur une seule g\xE9om\xE9trie a la fois. + else { + if (selectionMulti_==null) + return false; + if (selectionMulti_.getNbListSelected()!=1) + return false; + + int idxGeom=selectionMulti_.getIdxSelected()[0]; + + CtuluListSelection s=selectionMulti_.get(idxGeom); + if (s==null) + return false; + int idx=s.getMinIndex(); + if (idx<=0) + return false; + s.setSelectionInterval(idx-1,idx-1); + fireSelectionEvent(); + return true; + } + } + public boolean setSurfaceModel(final TraceSurfaceModel _model) { final TraceSurfaceModel surf = getSurfaceModel(); if (_model != null && surf != null && surf.updateData(_model)) { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueLigneBrisee.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueLigneBrisee.java 2008-11-04 16:49:39 UTC (rev 4165) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueLigneBrisee.java 2008-11-04 17:46:05 UTC (rev 4166) @@ -944,6 +944,56 @@ return false; } + public boolean selectNext() { + if (!isAtomicMode_) { + return super.selectNext(); + } + // Ne fonctionne que sur une seule g\xE9om\xE9trie a la fois. + else { + if (selectionMulti_==null) + return false; + if (selectionMulti_.getNbListSelected()!=1) + return false; + + int idxGeom=selectionMulti_.getIdxSelected()[0]; + + CtuluListSelection s=selectionMulti_.get(idxGeom); + if (s==null) + return false; + int idx=s.getMaxIndex(); + if (idx>=getModele().getNbPointForGeometry(idxGeom)-1) + return false; + s.setSelectionInterval(idx+1,idx+1); + fireSelectionEvent(); + return true; + } + } + + public boolean selectPrevious() { + if (!isAtomicMode_) { + return super.selectPrevious(); + } + // Ne fonctionne que sur une seule g\xE9om\xE9trie a la fois. + else { + if (selectionMulti_==null) + return false; + if (selectionMulti_.getNbListSelected()!=1) + return false; + + int idxGeom=selectionMulti_.getIdxSelected()[0]; + + CtuluListSelection s=selectionMulti_.get(idxGeom); + if (s==null) + return false; + int idx=s.getMinIndex(); + if (idx<=0) + return false; + s.setSelectionInterval(idx-1,idx-1); + fireSelectionEvent(); + return true; + } + } + public boolean setTitle(final String _title) { final boolean r = super.setTitle(_title); if (r && modele_ != null && modele_.getGeomData() != null) { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZEbliCalquesPanel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZEbliCalquesPanel.java 2008-11-04 16:49:39 UTC (rev 4165) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZEbliCalquesPanel.java 2008-11-04 17:46:05 UTC (rev 4166) @@ -1,6 +1,6 @@ /* * @creation 2002-10-8 - * @modification $Date: 2008-05-13 12:10:36 $ + * @modification $Date$ * @license GNU General Public License 2 * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne * @mail de...@fu... @@ -46,6 +46,7 @@ import org.fudaa.ctulu.image.CtuluImageProducer; import org.fudaa.ctulu.image.CtuluLibImage; import org.fudaa.ebli.animation.EbliAnimationSourceAbstract; +import org.fudaa.ebli.calque.action.SceneSelectPreviousAction; import org.fudaa.ebli.calque.edition.ZEditorDefault; import org.fudaa.ebli.commun.EbliActionInterface; import org.fudaa.ebli.commun.EbliComponentFactory; @@ -73,7 +74,7 @@ * Par defaut, 3 groupes de boutons sont proposes : selection, standard et navigation. Ils peuvent etre supprimes ou * modifies avec les methodes remove * - * @version $Id: ZEbliCalquesPanel.java,v 1.55.4.4 2008-05-13 12:10:36 bmarchan Exp $ + * @version $Id$ * @author Guillaume Desnoix , Axel von Arnim, Fred deniger */ public class ZEbliCalquesPanel extends BuPanel implements EbliFilleCalquesInterface, BCalqueContextuelListener, @@ -115,7 +116,7 @@ /** * @author Fred Deniger - * @version $Id: ZEbliCalquesPanel.java,v 1.55.4.4 2008-05-13 12:10:36 bmarchan Exp $ + * @version $Id$ */ public static class LayerDynamicMenu extends BuDynamicMenu { @@ -146,7 +147,7 @@ * Le menu des th\xE8mes. * * @author Fred Deniger - * @version $Id: ZEbliCalquesPanel.java,v 1.55.4.4 2008-05-13 12:10:36 bmarchan Exp $ + * @version $Id$ */ public static class ThemeMenu extends BuDynamicMenu implements TreeModelListener { @@ -249,8 +250,8 @@ * @param _m le menu a remplir */ protected void fillMenuWithSceneActions(final JMenu _m) { - if (scene_ != null && scene_.getActions() != null) { - EbliComponentFactory.INSTANCE.addActionsToMenu(scene_.getActions(), _m); + if (scene_ != null && gisEditor_.getSceneEditor().getActions() != null) { + EbliComponentFactory.INSTANCE.addActionsToMenu(gisEditor_.getSceneEditor().getActions(), _m); } } @@ -260,8 +261,8 @@ * @param _m le menu a remplir */ protected void fillMenuWithSceneActions(final JPopupMenu _m) { - if (scene_!= null && scene_.getActions() != null) { - EbliComponentFactory.INSTANCE.addActionsToMenu(scene_.getActions(), _m); + if (scene_!= null && gisEditor_.getSceneEditor().getActions() != null) { + EbliComponentFactory.INSTANCE.addActionsToMenu(gisEditor_.getSceneEditor().getActions(), _m); } } @@ -619,6 +620,12 @@ return 1; } + /** + * Retourne les menus sp\xE9cifiques pour la fenetre. + * Les menus sp\xE9cifiques sont switch\xE9s d\xE9s que la fenetre passe de l'\xE9tat actif \xE0 inactif + * et inversement. Ils sont ajout\xE9s dans la barre de menus. + * @return Les menus sp\xE9cifiques. + */ public JMenu[] getSpecificMenus(final String _title) { if (specificMenus_ == null) { controller_.initSpecificActions(); Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZEbliCalquesPanel.java ___________________________________________________________________ Added: svn:keywords + Date Revision Author URL Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZScene.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZScene.java 2008-11-04 16:49:39 UTC (rev 4165) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZScene.java 2008-11-04 17:46:05 UTC (rev 4166) @@ -1,6 +1,6 @@ /* * @creation 10 avr. 08 - * @modification $Date: 2008-05-13 12:10:35 $ + * @modification $Date$ * @license GNU General Public License 2 * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne * @mail fud...@li... @@ -37,7 +37,7 @@ * La scene. Contient les modeles de donn\xE9es des calques qui en possedent. Elle permet de proposer * une interface unique pour la selection, le deplacement, etc. * @author Bertrand Marchand - * @version $Id: ZScene.java,v 1.1.2.1 2008-05-13 12:10:35 bmarchan Exp $ + * @version $Id$ */ public class ZScene implements TreeModelListener { @@ -352,11 +352,7 @@ /** La liste des listeners de selection chang\xE9e. */ protected HashSet<ZSelectionListener> selListeners_=new HashSet<ZSelectionListener>(); - /** Toutes les actions li\xE9es \xE0 la scene, ajout\xE9es dans les menus correspondants */ - private EbliActionInterface[] actions_; - - /** * Cr\xE9ation a partir d'un groupe de calques racine. * @param _root Le groupe de calque racine. @@ -793,12 +789,4 @@ for (ZSelectionListener listener : selListeners_) listener.selectionChanged(evt); } - - public EbliActionInterface[] getActions() { - return actions_; - } - - public void setActions(EbliActionInterface[] _actions) { - actions_=_actions; - } } Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZScene.java ___________________________________________________________________ Added: svn:keywords + Date Revision Author URL Id Added: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneSelectNextAction.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneSelectNextAction.java (rev 0) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneSelectNextAction.java 2008-11-04 17:46:05 UTC (rev 4166) @@ -0,0 +1,66 @@ +/* + * @creation 3 juil. 2008 + * @modification $Date:$ + * @license GNU General Public License 2 + * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail fud...@li... + */ +package org.fudaa.ebli.calque.action; + +import java.awt.event.ActionEvent; +import java.awt.event.InputEvent; +import java.awt.event.KeyEvent; + +import javax.swing.KeyStroke; + +import org.fudaa.ctulu.CtuluLib; +import org.fudaa.ebli.calque.ZScene; +import org.fudaa.ebli.calque.ZSelectionEvent; +import org.fudaa.ebli.calque.ZSelectionListener; +import org.fudaa.ebli.calque.ZScene.SceneSelectionHelper; +import org.fudaa.ebli.calque.edition.ZSceneEditor; +import org.fudaa.ebli.commun.EbliActionSimple; + +import com.memoire.bu.BuResource; + +/** + * Une action pour s\xE9lectionner le sommet suivant d'une g\xE9om\xE9trie. + * @author Bertrand Marchand + * @version $Id$ + */ +public class SceneSelectNextAction extends EbliActionSimple implements ZSelectionListener { + ZSceneEditor editor_; + + public SceneSelectNextAction(ZSceneEditor _editor) { + super(BuResource.BU.getString("S\xE9lection de l'objet suivant"), BuResource.BU.getIcon("avancer2"), "SELECT_NEXT"); + setKey(KeyStroke.getKeyStroke(KeyEvent.VK_G,KeyEvent.CTRL_MASK)); + editor_=_editor; + _editor.getScene().addSelectionListener(this); + } + + public void actionPerformed(final ActionEvent _e) { + editor_.selectNextObject(); + } + + public void updateStateBeforeShow() { + ZScene scn=editor_.getScene(); + SceneSelectionHelper hlp=editor_.getScene().getSelectionHelper(); + + boolean b=true; + // Si la selection n'est pas null + b=b && !scn.isSelectionEmpty(); + // Si la selection est au nombre de 1. + b=b && (!scn.isAtomicMode() || hlp.getNbAtomicSelected()==1); + b=b && (scn.isAtomicMode() || scn.getLayerSelection().getNbSelectedIndex()==1); + + setEnabled(b); + } + + public String getEnableCondition() { + return CtuluLib.getS("S\xE9lectionner une g\xE9om\xE9trie ou un sommet"); + } + + public void selectionChanged(ZSelectionEvent _evt) { + updateStateBeforeShow(); + } +} Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneSelectNextAction.java ___________________________________________________________________ Added: svn:keywords + Date Revision Author URL Id Added: svn:eol-style + native Added: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneSelectPreviousAction.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneSelectPreviousAction.java (rev 0) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneSelectPreviousAction.java 2008-11-04 17:46:05 UTC (rev 4166) @@ -0,0 +1,66 @@ +/* + * @creation 3 juil. 2008 + * @modification $Date:$ + * @license GNU General Public License 2 + * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail fud...@li... + */ +package org.fudaa.ebli.calque.action; + +import java.awt.event.ActionEvent; +import java.awt.event.InputEvent; +import java.awt.event.KeyEvent; + +import javax.swing.KeyStroke; + +import org.fudaa.ctulu.CtuluLib; +import org.fudaa.ebli.calque.ZScene; +import org.fudaa.ebli.calque.ZSelectionEvent; +import org.fudaa.ebli.calque.ZSelectionListener; +import org.fudaa.ebli.calque.ZScene.SceneSelectionHelper; +import org.fudaa.ebli.calque.edition.ZSceneEditor; +import org.fudaa.ebli.commun.EbliActionSimple; + +import com.memoire.bu.BuResource; + +/** + * Une action pour s\xE9lectionner le sommet pr\xE9c\xE9dent d'une g\xE9om\xE9trie. + * @author Bertrand Marchand + * @version $Id$ + */ +public class SceneSelectPreviousAction extends EbliActionSimple implements ZSelectionListener { + ZSceneEditor editor_; + + public SceneSelectPreviousAction(ZSceneEditor _editor) { + super(BuResource.BU.getString("S\xE9lection de l'objet pr\xE9c\xE9dent"), BuResource.BU.getIcon("reculer"), "SELECT_PREVIOUS"); + setKey(KeyStroke.getKeyStroke(KeyEvent.VK_G,KeyEvent.SHIFT_MASK | KeyEvent.CTRL_MASK)); + editor_=_editor; + _editor.getScene().addSelectionListener(this); + } + + public void actionPerformed(final ActionEvent _e) { + editor_.selectPreviousObject(); + } + + public void updateStateBeforeShow() { + ZScene scn=editor_.getScene(); + SceneSelectionHelper hlp=editor_.getScene().getSelectionHelper(); + + boolean b=true; + // Si la selection n'est pas null + b=b && !scn.isSelectionEmpty(); + // Si la selection est au nombre de 1. + b=b && (!scn.isAtomicMode() || hlp.getNbAtomicSelected()==1); + b=b && (scn.isAtomicMode() || scn.getLayerSelection().getNbSelectedIndex()==1); + + setEnabled(b); + } + + public String getEnableCondition() { + return CtuluLib.getS("S\xE9lectionner une g\xE9om\xE9trie ou un sommet"); + } + + public void selectionChanged(ZSelectionEvent _evt) { + updateStateBeforeShow(); + } +} Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneSelectPreviousAction.java ___________________________________________________________________ Added: svn:keywords + Date Revision Author URL Id Added: svn:eol-style + native Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZEditorDefault.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZEditorDefault.java 2008-11-04 16:49:39 UTC (rev 4165) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZEditorDefault.java 2008-11-04 17:46:05 UTC (rev 4166) @@ -182,7 +182,7 @@ sceneEditor_=_editor; setMng(new CtuluCommandManager()); // panel_.addKeyListener(this); - buildDeletesAction(); + buildActions(); EbliLib.updateMapKeyStroke(_panel, getDeleteActions()); installSceneActions(); } @@ -436,7 +436,7 @@ return new EbliActionInterface[] { actionDelete_, actionCancel_ }; } - private void buildDeletesAction() { + private void buildActions() { actionDelete_ = new EbliActionSimple(CtuluLib.getS("Supprimer"), BuResource.BU.getIcon("enlever"),"DeleteSelectedAction") { public void actionPerformed(final ActionEvent _e) { delete(); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZSceneEditor.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZSceneEditor.java 2008-11-04 16:49:39 UTC (rev 4165) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZSceneEditor.java 2008-11-04 17:46:05 UTC (rev 4166) @@ -11,9 +11,11 @@ import org.fudaa.ctulu.CtuluCommandContainer; import org.fudaa.ctulu.CtuluCommandManager; import org.fudaa.ctulu.CtuluUI; +import org.fudaa.ebli.calque.ZCalqueAffichageDonnees; import org.fudaa.ebli.calque.ZCalqueAffichageDonneesInterface; import org.fudaa.ebli.calque.ZEbliCalquesPanel; import org.fudaa.ebli.calque.ZScene; +import org.fudaa.ebli.commun.EbliActionInterface; import org.fudaa.ebli.geometrie.GrBoite; import org.fudaa.ebli.ressource.EbliResource; @@ -27,6 +29,8 @@ protected ZEbliCalquesPanel calquePanel_; protected CtuluCommandManager mng_; protected CtuluUI ui_; + /** Toutes les actions li\xE9es \xE0 la scene, ajout\xE9es dans les menus correspondants */ + private EbliActionInterface[] actions_; public ZSceneEditor(ZScene _scene, ZEbliCalquesPanel _calquePanel) { scene_=_scene; @@ -52,7 +56,15 @@ public ZScene getScene() { return scene_; } + + public EbliActionInterface[] getActions() { + return actions_; + } + public void setActions(EbliActionInterface[] _actions) { + actions_=_actions; + } + public void rotateSelectedObjects(double _angRad, double _xreel0, double _yreel0) { ZCalqueEditable[] cqs=scene_.getEditableLayers(); @@ -140,4 +152,23 @@ calquePanel_.getVueCalque().changeRepere(this, boite); } + /** + * Selectionne l'objet suivant celui selectionn\xE9. + */ + public void selectNextObject() { + int idx=getScene().getSelectionHelper().getUniqueSelectedIdx(); + ZCalqueAffichageDonnees cq=(ZCalqueAffichageDonnees)getScene().getLayerForId(idx); + + cq.selectNext(); + } + + /** + * Selectionne l'objet pr\xE9c\xE9dent celui selectionn\xE9. + */ + public void selectPreviousObject() { + int idx=getScene().getSelectionHelper().getUniqueSelectedIdx(); + ZCalqueAffichageDonnees cq=(ZCalqueAffichageDonnees)getScene().getLayerForId(idx); + + cq.selectPrevious(); + } } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java 2008-11-04 16:49:39 UTC (rev 4165) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java 2008-11-04 17:46:05 UTC (rev 4166) @@ -65,7 +65,7 @@ super.installSceneActions(); ArrayList<EbliActionInterface> acts=new ArrayList<EbliActionInterface>(); - EbliActionInterface[] actSuper=sceneEditor_.getScene().getActions(); + EbliActionInterface[] actSuper=sceneEditor_.getActions(); if (actSuper!=null) acts.addAll(Arrays.asList(actSuper)); acts.add(new SceneSplitAction(sceneEditor_)); @@ -74,7 +74,7 @@ acts.add(new SceneDecimationAction((MdlSceneEditor)sceneEditor_)); acts.add(new SceneRefinementAction((MdlSceneEditor)sceneEditor_)); acts.add(new SceneProjectionAction((MdlSceneEditor)sceneEditor_)); - getSceneEditor().getScene().setActions(acts.toArray(new EbliActionAbstract[0])); + getSceneEditor().setActions(acts.toArray(new EbliActionAbstract[0])); } /** Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigVisuPanel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigVisuPanel.java 2008-11-04 16:49:39 UTC (rev 4165) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigVisuPanel.java 2008-11-04 17:46:05 UTC (rev 4166) @@ -29,10 +29,13 @@ import org.fudaa.ebli.calque.action.EditVisibilityAction; import org.fudaa.ebli.calque.action.SceneDeplacementAction; import org.fudaa.ebli.calque.action.SceneRotationAction; +import org.fudaa.ebli.calque.action.SceneSelectPreviousAction; +import org.fudaa.ebli.calque.action.SceneSelectNextAction; import org.fudaa.ebli.calque.edition.ZCalqueDeplacement; import org.fudaa.ebli.calque.edition.ZCalqueEditionGroup; import org.fudaa.ebli.calque.edition.ZEditorDefault; import org.fudaa.ebli.commun.EbliActionInterface; +import org.fudaa.ebli.commun.EbliComponentFactory; import org.fudaa.ebli.commun.EbliFormatter; import org.fudaa.ebli.commun.EbliSelectionMode; @@ -122,6 +125,11 @@ res[0] = new BuMenu(_title, "LAYER"); res[0].setIcon(null); res[0].add(BArbreCalque.buildZNormalMenu(modelArbre_)); + EbliComponentFactory.INSTANCE.addActionsToMenu(new EbliActionInterface[] { + null, + new SceneSelectPreviousAction(gisEditor_.getSceneEditor()), + new SceneSelectNextAction(gisEditor_.getSceneEditor()) + },res[0]); fillMenuWithToolsActions(res[0]); res[1] = getThemeMenu(); res[1].setMnemonic(res[1].getText().charAt(0)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |