From: <emm...@us...> - 2008-09-05 08:33:36
|
Revision: 3886 http://fudaa.svn.sourceforge.net/fudaa/?rev=3886&view=rev Author: emmanuel_martin Date: 2008-09-05 08:33:45 +0000 (Fri, 05 Sep 2008) Log Message: ----------- rend le zoom sur selection ind?\195?\169pendant du calque selectionn?\195?\169 et permet de zoomer correctement dans le cas de plusieurs selections simultan?\195?\169s. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZEbliCalquePanelController.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/meshviewer/profile/MvProfileGridPalette.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigVisuPanel.java Added Paths: ----------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneZoomOnSelectedAction.java Removed Paths: ------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/CalqueZoomOnSelectedAction.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZEbliCalquePanelController.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZEbliCalquePanelController.java 2008-09-04 16:59:56 UTC (rev 3885) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZEbliCalquePanelController.java 2008-09-05 08:33:45 UTC (rev 3886) @@ -38,7 +38,7 @@ import org.fudaa.ebli.calque.action.CalqueActionInteraction; import org.fudaa.ebli.calque.action.CalqueActionTable; import org.fudaa.ebli.calque.action.CalqueSelectionAction; -import org.fudaa.ebli.calque.action.CalqueZoomOnSelectedAction; +import org.fudaa.ebli.calque.action.SceneZoomOnSelectedAction; import org.fudaa.ebli.commun.EbliActionInterface; import org.fudaa.ebli.commun.EbliActionPaletteAbstract; import org.fudaa.ebli.commun.EbliActionPaletteSpecAbstract; @@ -211,7 +211,7 @@ action.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke('z')); navigationActionGroup_[i++] = action; - navigationActionGroup_[i++] = new CalqueZoomOnSelectedAction(pn_); + navigationActionGroup_[i++] = new SceneZoomOnSelectedAction(pn_); // VIEW NAVIGATION navigationActionGroup_[i] = new EbliActionSimple(EbliResource.EBLI.getString("Derni\xE8re vue"), EbliResource.EBLI @@ -271,7 +271,7 @@ action.setDefaultToolTip(tltTip); selectedActionGroup_[i++] = action; - action = new CalqueSelectionAction(this, EbliResource.EBLI.getIcon("polygone"), "POLYGON_SELECTION", + action = new CalqueSelectionAction(this, EbliResource.EBLI.getIcon("fleche-polygone"), "POLYGON_SELECTION", ZCalqueSelectionInteractionAbstract.POLYGONE); action.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke('p')); action.setDefaultToolTip(tltTip); 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-09-04 16:59:56 UTC (rev 3885) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZEbliCalquesPanel.java 2008-09-05 08:33:45 UTC (rev 3886) @@ -45,6 +45,7 @@ import org.fudaa.ctulu.image.CtuluLibImage; import org.fudaa.ebli.animation.EbliAnimationSourceAbstract; +import org.fudaa.ebli.calque.edition.ZEditorDefault; import org.fudaa.ebli.calque.edition.ZSceneEditor; import org.fudaa.ebli.commun.EbliActionInterface; import org.fudaa.ebli.commun.EbliComponentFactory; @@ -70,6 +71,8 @@ public class ZEbliCalquesPanel extends BuPanel implements EbliFilleCalquesInterface, BCalqueContextuelListener, CtuluImageProducer, BCalqueSaverTargetInterface, EbliFindable, ActionListener, ZSelectionListener { + protected ZEditorDefault gisEditor_; + protected class AnimAdapter extends EbliAnimationSourceAbstract { public AnimAdapter() { @@ -384,8 +387,20 @@ scene_.setRestrictedToCalqueActif(true); scene_.addSelectionListener(this); modelArbre_.addTreeModelListener(scene_); + gisEditor_ = createGisEditor(); } + protected ZEditorDefault createGisEditor() { + return new ZEditorDefault(this); + } + + /** + * @return retourne le ZEditorDefault poss\xE9d\xE9. + */ + public final ZEditorDefault getDefaultGisEditor() { + return gisEditor_; + } + public void setInfoText(final String _s) { if (CtuluLibString.isEmpty(_s)) { unsetInfoText(); @@ -819,6 +834,10 @@ } } + /** + * Cette fonctionnalit\xE9 est d\xE9plac\xE9e et \xE9tendue dans ZSceneEditor + * @deprecated + */ public void zoomOnSelected() { final BCalque cq = getCalqueActif(); if (cq instanceof ZCalqueAffichageDonneesInterface) { 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-09-04 16:59:56 UTC (rev 3885) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZScene.java 2008-09-05 08:33:45 UTC (rev 3886) @@ -731,7 +731,7 @@ return new ZCalqueAffichageDonneesInterface[0]; } - private ZCalqueAffichageDonneesInterface[] getAllLayers() { + public ZCalqueAffichageDonneesInterface[] getAllLayers() { if (brefreshRequested_) { ArrayList<BCalque> lcqs=new ArrayList<BCalque>(); for ( BCalque cq : cqRoot_.getTousCalques()) { Deleted: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/CalqueZoomOnSelectedAction.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/CalqueZoomOnSelectedAction.java 2008-09-04 16:59:56 UTC (rev 3885) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/CalqueZoomOnSelectedAction.java 2008-09-05 08:33:45 UTC (rev 3886) @@ -1,71 +0,0 @@ -package org.fudaa.ebli.calque.action; - -import java.awt.event.ActionEvent; -import java.awt.event.InputEvent; -import java.awt.event.KeyEvent; - -import javax.swing.Action; -import javax.swing.KeyStroke; -import javax.swing.event.TreeSelectionEvent; -import javax.swing.event.TreeSelectionListener; - -import org.fudaa.ebli.calque.ZCalqueAffichageDonneesInterface; -import org.fudaa.ebli.calque.ZEbliCalquesPanel; -import org.fudaa.ebli.calque.ZSelectionEvent; -import org.fudaa.ebli.calque.ZSelectionListener; -import org.fudaa.ebli.commun.EbliActionInterface; -import org.fudaa.ebli.commun.EbliActionSimple; -import org.fudaa.ebli.ressource.EbliResource; - -/** - * Une action pour un zoom sur la s\xE9lection. Est active si des objets sont selectionn\xE9s. - * @author Fred Deniger - * @version $Id: CalqueZoomOnSelectedAction.java,v 1.2.8.1 2008-02-27 17:16:12 bmarchan Exp $ - */ -public class CalqueZoomOnSelectedAction extends EbliActionSimple implements TreeSelectionListener, ZSelectionListener { - - final ZEbliCalquesPanel cqPn_; - - public CalqueZoomOnSelectedAction(final ZEbliCalquesPanel _pn) { - super(EbliResource.EBLI.getString("Centrer sur la s\xE9lection"), EbliResource.EBLI.getIcon("zoom-selection"), - "ZOOM_ON_SELECTED"); - putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_R, InputEvent.CTRL_DOWN_MASK)); - putValue(EbliActionInterface.SECOND_KEYSTROKE, KeyStroke.getKeyStroke(KeyEvent.VK_F5, InputEvent.CTRL_DOWN_MASK)); - setDefaultToolTip(EbliResource.EBLI.getString("Centrer la vue sur la s\xE9lection courante")); - cqPn_ = _pn; - cqPn_.getArbreCalqueModel().addTreeSelectionListener(this); - } - - public void actionPerformed(final ActionEvent _arg) { - cqPn_.zoomOnSelected(); - } - - public void updateStateBeforeShow() { - super.setEnabled(cqPn_.isZoomOnSelectedEnable()); - } - - private void updateEnableState() { - setEnabled(current_ != null && !current_.isSelectionEmpty()); - } - - ZCalqueAffichageDonneesInterface current_; - - public void selectionChanged(final ZSelectionEvent _evt) { - updateEnableState(); - } - - public void valueChanged(final TreeSelectionEvent _e) { - if (current_ != null) { - current_.removeSelectionListener(this); - } - final Object newSelected = _e.getPath().getLastPathComponent(); - if (newSelected instanceof ZCalqueAffichageDonneesInterface) { - current_ = (ZCalqueAffichageDonneesInterface) newSelected; - current_.addSelectionListener(this); - } else { - current_ = null; - } - updateEnableState(); - } - -} \ No newline at end of file Copied: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneZoomOnSelectedAction.java (from rev 3861, branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/CalqueZoomOnSelectedAction.java) =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneZoomOnSelectedAction.java (rev 0) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneZoomOnSelectedAction.java 2008-09-05 08:33:45 UTC (rev 3886) @@ -0,0 +1,65 @@ +package org.fudaa.ebli.calque.action; + +import java.awt.event.ActionEvent; +import java.awt.event.InputEvent; +import java.awt.event.KeyEvent; + +import javax.swing.Action; +import javax.swing.KeyStroke; +import javax.swing.event.TreeSelectionEvent; +import javax.swing.event.TreeSelectionListener; + +import org.fudaa.ebli.calque.ZCalqueAffichageDonneesInterface; +import org.fudaa.ebli.calque.ZEbliCalquesPanel; +import org.fudaa.ebli.calque.ZSelectionEvent; +import org.fudaa.ebli.calque.ZSelectionListener; +import org.fudaa.ebli.commun.EbliActionInterface; +import org.fudaa.ebli.commun.EbliActionSimple; +import org.fudaa.ebli.ressource.EbliResource; + +/** + * Une action pour un zoom sur la s\xE9lection. Est active si des objets sont selectionn\xE9s. + * @author Fred Deniger + * @version $Id: CalqueZoomOnSelectedAction.java,v 1.2.8.1 2008-02-27 17:16:12 bmarchan Exp $ + */ +public class SceneZoomOnSelectedAction extends EbliActionSimple implements ZSelectionListener { + + final ZEbliCalquesPanel cqPn_; + + public SceneZoomOnSelectedAction(final ZEbliCalquesPanel _pn) { + super(EbliResource.EBLI.getString("Centrer sur la s\xE9lection"), EbliResource.EBLI.getIcon("zoom-selection"), + "ZOOM_ON_SELECTED"); + putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_R, InputEvent.CTRL_DOWN_MASK)); + putValue(EbliActionInterface.SECOND_KEYSTROKE, KeyStroke.getKeyStroke(KeyEvent.VK_F5, InputEvent.CTRL_DOWN_MASK)); + setDefaultToolTip(EbliResource.EBLI.getString("Centrer la vue sur la s\xE9lection courante")); + cqPn_ = _pn; + cqPn_.getScene().addSelectionListener(this); + } + + /** + * Effectue le zoom sur selection + */ + public void actionPerformed(final ActionEvent _arg) { + cqPn_.getDefaultGisEditor().getSceneEditor().zoomOnSelected(); + } + + public void updateStateBeforeShow() { + super.setEnabled(cqPn_.isZoomOnSelectedEnable()); + } + + /** + * Active le bouton de zoom sur selection. + */ + private void updateEnableState() { + setEnabled(!cqPn_.getDefaultGisEditor().getSceneEditor().getScene().isSelectionEmpty()); + } + + public void selectionChanged(final ZSelectionEvent _evt) { + updateEnableState(); + } + + public void valueChanged(final TreeSelectionEvent _e) { + updateEnableState(); + } + +} \ No newline at end of file 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-09-04 16:59:56 UTC (rev 3885) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZEditorDefault.java 2008-09-05 08:33:45 UTC (rev 3886) @@ -169,7 +169,7 @@ } public ZEditorDefault(final ZEbliCalquesPanel _panel) { - this(_panel,new ZSceneEditor(_panel.getScene())); + this(_panel,new ZSceneEditor(_panel.getScene(), _panel)); } /** 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-09-04 16:59:56 UTC (rev 3885) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZSceneEditor.java 2008-09-05 08:33:45 UTC (rev 3886) @@ -11,7 +11,10 @@ import org.fudaa.ctulu.CtuluCommandContainer; import org.fudaa.ctulu.CtuluCommandManager; import org.fudaa.ctulu.CtuluUI; +import org.fudaa.ebli.calque.ZCalqueAffichageDonneesInterface; +import org.fudaa.ebli.calque.ZEbliCalquesPanel; import org.fudaa.ebli.calque.ZScene; +import org.fudaa.ebli.geometrie.GrBoite; /** * Regroupe les traitements d'\xE9dition de la scene. @@ -20,11 +23,13 @@ */ public class ZSceneEditor { protected ZScene scene_; + protected ZEbliCalquesPanel claquePanel_; protected CtuluCommandManager mng_; protected CtuluUI ui_; - public ZSceneEditor(ZScene _scene) { + public ZSceneEditor(ZScene _scene, ZEbliCalquesPanel _claquePanel) { scene_=_scene; + claquePanel_ = _claquePanel; } public void setUI(CtuluUI _ui) { @@ -114,4 +119,20 @@ String name=stel.getClassName()+"."+stel.getMethodName(); ui_.message("Not implemented", name, false); } + + /** + * Effectue un zoom sur la selection. Cette selection peut regrouper des + * \xE9l\xE9ments de diff\xE9rents calques. + */ + public void zoomOnSelected() { + GrBoite boite = null; + for (ZCalqueAffichageDonneesInterface cq : scene_.getAllLayers()) { + GrBoite boiteTmp = cq.getDomaineOnSelected(); + if(boite == null) boite = boiteTmp; + else boite.ajuste(boiteTmp); + } + if(boite != null) + claquePanel_.getVueCalque().changeRepere(this, boite); + } + } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileGridPalette.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileGridPalette.java 2008-09-04 16:59:56 UTC (rev 3885) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/meshviewer/profile/MvProfileGridPalette.java 2008-09-05 08:33:45 UTC (rev 3886) @@ -37,7 +37,7 @@ import org.fudaa.ebli.calque.ZSelectionEvent; import org.fudaa.ebli.calque.ZSelectionListener; import org.fudaa.ebli.calque.action.CalqueActionInteraction; -import org.fudaa.ebli.calque.action.CalqueZoomOnSelectedAction; +import org.fudaa.ebli.calque.action.SceneZoomOnSelectedAction; import org.fudaa.ebli.commun.BPalettePanelInterface; import org.fudaa.ebli.commun.EbliActionInterface; import org.fudaa.ebli.commun.EbliActionSimple; @@ -96,7 +96,7 @@ action.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke('z')); navigationActionGroup_[i++] = action; - navigationActionGroup_[i++] = new CalqueZoomOnSelectedAction(pn_); + navigationActionGroup_[i++] = new SceneZoomOnSelectedAction(pn_); // VIEW NAVIGATION navigationActionGroup_[i] = new EbliActionSimple(EbliResource.EBLI.getString("Derni\xE8re vue"), EbliResource.EBLI Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java 2008-09-04 16:59:56 UTC (rev 3885) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java 2008-09-05 08:33:45 UTC (rev 3886) @@ -57,7 +57,7 @@ MdlRefinementPanel pnRaffinement_=null; public MdlSceneEditor(MdlVisuPanel _pn, ZScene _scene) { - super(_scene); + super(_scene, _pn); pn_=_pn; } 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-09-04 16:59:56 UTC (rev 3885) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigVisuPanel.java 2008-09-05 08:33:45 UTC (rev 3886) @@ -30,6 +30,7 @@ import org.fudaa.ebli.calque.action.SceneRotationAction; 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.EbliFormatter; import org.fudaa.ebli.commun.EbliSelectionMode; @@ -50,8 +51,6 @@ FSigAttibuteTypeManager attMng_; - FSigEditor gisEditor_; - ZCalqueGrille grille_; ThemeMenu theme_; @@ -112,7 +111,7 @@ } - protected FSigEditor createGisEditor() { + protected ZEditorDefault createGisEditor() { return new FSigEditor(this, getCmdMng()); } @@ -188,7 +187,7 @@ } public final FSigEditor getGisEditor() { - return gisEditor_; + return (FSigEditor) gisEditor_; } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |