From: <bma...@us...> - 2008-10-31 15:23:58
|
Revision: 4139 http://fudaa.svn.sourceforge.net/fudaa/?rev=4139&view=rev Author: bmarchan Date: 2008-10-31 15:23:54 +0000 (Fri, 31 Oct 2008) Log Message: ----------- Undo/redo sur cr?\195?\169ation/destruction de calque. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueLigneBriseeEditable.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueMultiPointEditable.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/action/CalqueNewCalqueAction.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dMultiPoint.java Property Changed: ---------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueLigneBriseeEditable.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueMultiPointEditable.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/action/CalqueNewCalqueAction.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dMultiPoint.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueLigneBriseeEditable.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueLigneBriseeEditable.java 2008-10-31 15:21:28 UTC (rev 4138) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueLigneBriseeEditable.java 2008-10-31 15:23:54 UTC (rev 4139) @@ -1,6 +1,6 @@ /* * @creation 1 avr. 2005 - * @modification $Date: 2008-03-28 15:01:01 $ + * @modification $Date$ * @license GNU General Public License 2 * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne * @mail de...@fu... @@ -32,17 +32,17 @@ /** * @author Fred Deniger - * @version $Id: ZCalqueLigneBriseeEditable.java,v 1.8.6.7 2008-03-28 15:01:01 bmarchan Exp $ + * @version $Id$ */ public class ZCalqueLigneBriseeEditable extends ZCalqueLigneBrisee implements ZCalqueEditable { - ZEditorInterface editor_; + ZEditorDefault editor_; public ZCalqueLigneBriseeEditable() { super(); } - public ZCalqueLigneBriseeEditable(final ZModeleLigneBriseeEditable _modele, final ZEditorInterface _editor) { + public ZCalqueLigneBriseeEditable(final ZModeleLigneBriseeEditable _modele, final ZEditorDefault _editor) { modele_ = _modele; if(modele_!=null) modele_.addModelListener(this); @@ -221,7 +221,7 @@ return true; } - public final ZEditorInterface getEditor() { + public final ZEditorDefault getEditor() { return editor_; } @@ -363,7 +363,7 @@ return r; } - public final void setEditor(final ZEditorInterface _editor) { + public final void setEditor(final ZEditorDefault _editor) { editor_ = _editor; } } Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueLigneBriseeEditable.java ___________________________________________________________________ Added: svn:keywords + Date Revision Author URL Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueMultiPointEditable.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueMultiPointEditable.java 2008-10-31 15:21:28 UTC (rev 4138) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueMultiPointEditable.java 2008-10-31 15:23:54 UTC (rev 4139) @@ -1,6 +1,6 @@ /* * @creation 1 avr. 2005 - * @modification $Date: 2008-03-26 16:46:43 $ + * @modification $Date$ * @license GNU General Public License 2 * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne * @mail de...@fu... @@ -33,18 +33,18 @@ /** * Un calque pour les multipoints editables. * @author Bertrand Marchand - * @version $Id: ZCalqueMultiPointEditable.java,v 1.1.2.1 2008-03-26 16:46:43 bmarchan Exp $ + * @version $Id$ */ public class ZCalqueMultiPointEditable extends ZCalqueMultiPoint implements ZCalqueEditable { - ZEditorInterface editor_; + ZEditorDefault editor_; /** * Le seul constructeur, avec le modele \xE9ditable. * @param _modele * @param _editor */ - public ZCalqueMultiPointEditable(final ZModeleMultiPointEditable _modele, final ZEditorInterface _editor) { + public ZCalqueMultiPointEditable(final ZModeleMultiPointEditable _modele, final ZEditorDefault _editor) { super(_modele); editor_ = _editor; } @@ -127,7 +127,7 @@ * Retourne l'\xE9diteur pour les objets selectionn\xE9s. * @return L'editeur. Peut \xEAtre null. */ - public final ZEditorInterface getEditor() { + public final ZEditorDefault getEditor() { return editor_; } @@ -352,7 +352,7 @@ * Definit l'\xE9diteur pour les objets selectionn\xE9s. * @param _editor L'editeur. */ - public final void setEditor(final ZEditorInterface _editor) { + public final void setEditor(final ZEditorDefault _editor) { editor_ = _editor; } } Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueMultiPointEditable.java ___________________________________________________________________ Added: svn:keywords + Date Revision Author URL Id 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-10-31 15:21:28 UTC (rev 4138) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZSceneEditor.java 2008-10-31 15:23:54 UTC (rev 4139) @@ -1,6 +1,6 @@ /* * @creation 22 avr. 08 - * @modification $Date: 2008-05-13 12:10:30 $ + * @modification $Date$ * @license GNU General Public License 2 * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne * @mail fud...@li... @@ -15,11 +15,12 @@ import org.fudaa.ebli.calque.ZEbliCalquesPanel; import org.fudaa.ebli.calque.ZScene; import org.fudaa.ebli.geometrie.GrBoite; +import org.fudaa.ebli.ressource.EbliResource; /** * Regroupe les traitements d'\xE9dition de la scene. * @author Bertrand Marchand - * @version $Id: ZSceneEditor.java,v 1.1.2.1 2008-05-13 12:10:30 bmarchan Exp $ + * @version $Id$ */ public class ZSceneEditor { protected ZScene scene_; @@ -55,7 +56,8 @@ public void rotateSelectedObjects(double _angRad, double _xreel0, double _yreel0) { ZCalqueEditable[] cqs=scene_.getEditableLayers(); - final CtuluCommandComposite cmp = new CtuluCommandComposite(); + final CtuluCommandComposite cmp = new CtuluCommandComposite( + EbliResource.EBLI.getString("Rotation de s\xE9lection")); for (int i=0; i<cqs.length; i++) { cqs[i].rotateSelectedObjects(_angRad, _xreel0, _yreel0, cmp, ui_); } @@ -66,7 +68,8 @@ public void moveSelectedObjects(final double _dx, final double _dy, final double _dz) { ZCalqueEditable[] cqs=scene_.getEditableLayers(); - final CtuluCommandComposite cmp = new CtuluCommandComposite(); + final CtuluCommandComposite cmp = new CtuluCommandComposite( + EbliResource.EBLI.getString("D\xE9placer s\xE9lection")); for (int i=0; i<cqs.length; i++) { if (_dx != 0 || _dy != 0 || _dz!=0) { cqs[i].moveSelectedObjects(_dx, _dy, _dz, cmp, ui_); @@ -79,7 +82,8 @@ public void removeSelectedObjects(CtuluCommandContainer _cmd) { ZCalqueEditable[] cqs=scene_.getEditableLayers(); - final CtuluCommandComposite cmp = new CtuluCommandComposite(); + final CtuluCommandComposite cmp = new CtuluCommandComposite( + EbliResource.EBLI.getString("Supprimer s\xE9lection")); for (int i=0; i<cqs.length; i++) { cqs[i].removeSelectedObjects(cmp, ui_); } @@ -93,7 +97,8 @@ */ public void copySelectedObjects() { ZCalqueEditable[] cqs=scene_.getEditableLayers(); - final CtuluCommandComposite cmp = new CtuluCommandComposite(); + final CtuluCommandComposite cmp = new CtuluCommandComposite( + EbliResource.EBLI.getString("Dupliquer s\xE9lection")); for (int i=0; i<cqs.length; i++) { cqs[i].copySelectedObjects(cmp, ui_); } Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZSceneEditor.java ___________________________________________________________________ Added: svn:keywords + Date Revision Author URL Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/CalqueNewCalqueAction.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/CalqueNewCalqueAction.java 2008-10-31 15:21:28 UTC (rev 4138) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/CalqueNewCalqueAction.java 2008-10-31 15:23:54 UTC (rev 4139) @@ -1,6 +1,6 @@ /* * @creation 1 avr. 2005 - * @modification $Date: 2008/05/13 12:10:50 $ + * @modification $Date$ * @license GNU General Public License 2 * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne * @mail de...@fu... @@ -11,23 +11,50 @@ import javax.swing.Icon; +import org.fudaa.ctulu.CtuluCommand; +import org.fudaa.ctulu.CtuluNamedCommand; import org.fudaa.ebli.calque.BCalque; import org.fudaa.ebli.calque.BGroupeCalque; import org.fudaa.ebli.calque.ZCalqueAffichageDonnees; import org.fudaa.ebli.commun.EbliActionSimple; -import org.fudaa.fudaa.modeleur.layer.MdlLayer2dCloud; -import org.fudaa.fudaa.modeleur.layer.MdlLayer2dLevel; -import org.fudaa.fudaa.modeleur.layer.MdlLayer2dProfile; import org.fudaa.fudaa.modeleur.layer.MdlLayerFactory; import org.fudaa.fudaa.modeleur.layer.MdlLayerInterface; +import org.fudaa.fudaa.ressource.FudaaResource; import org.fudaa.fudaa.sig.layer.FSigEditor; /** * Une action pour cr\xE9er un nouveau calque. * @author Bertrand Marchand - * @version $Id: CalqueNewCalqueAction.java,v 1.1.2.1 2008/05/13 12:10:50 bmarchan Exp $ + * @version $Id$ */ public class CalqueNewCalqueAction extends EbliActionSimple { + + /** Une op\xE9ration de construction d'un nouveau calque */ + class OperationForLayerCreation implements CtuluNamedCommand { + private final BCalque parent_; + private final ZCalqueAffichageDonnees la_; + + /** + * @param _parent le calque parent + * @param _la le calque ajout\xE9 + */ + OperationForLayerCreation(BCalque _parent, ZCalqueAffichageDonnees _la) { + parent_ = _parent; + la_ = _la; + } + + public void redo() { + parent_.enDernier(la_); + } + + public void undo() { + parent_.remove(la_); + } + + public String getName() { + return FudaaResource.FUDAA.getString("Nouveau calque"); + } + } FSigEditor editor_; BCalque parent_; @@ -51,6 +78,11 @@ public void actionPerformed(final ActionEvent _e) { ZCalqueAffichageDonnees cq=MdlLayerFactory.getInstance().createLayer(cqType_, editor_); cq.setName(BGroupeCalque.findUniqueChildName(parent_, ((MdlLayerInterface)cq).getExtName())); - parent_.enDernier(cq); + CtuluCommand cmd=new OperationForLayerCreation(parent_,cq); + cmd.redo(); + + if (editor_.getMng()!=null) { + editor_.getMng().addCmd(cmd); + } } } Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/CalqueNewCalqueAction.java ___________________________________________________________________ Added: svn:keywords + Date Revision Author URL Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java 2008-10-31 15:21:28 UTC (rev 4138) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java 2008-10-31 15:23:54 UTC (rev 4139) @@ -1,6 +1,6 @@ /* * @creation 20 janv. 08 - * @modification $Date: 2008/05/13 12:10:44 $ + * @modification $Date$ * @license GNU General Public License 2 * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne * @mail fud...@li... @@ -11,9 +11,13 @@ import java.util.ArrayList; import java.util.Arrays; +import org.fudaa.ctulu.CtuluCommand; +import org.fudaa.ctulu.CtuluLibArray; +import org.fudaa.ctulu.CtuluNamedCommand; import org.fudaa.ebli.calque.BCalque; import org.fudaa.ebli.calque.BCalquePersistenceInterface; import org.fudaa.ebli.calque.BGroupeCalque; +import org.fudaa.ebli.calque.ZCalqueAffichageDonnees; import org.fudaa.ebli.calque.edition.ZModeleLigneBriseeEditable; import org.fudaa.ebli.commun.EbliActionInterface; import org.fudaa.ebli.trace.TraceLigne; @@ -21,15 +25,47 @@ import org.fudaa.fudaa.modeleur.MdlEditionManager; import org.fudaa.fudaa.modeleur.MdlResource; import org.fudaa.fudaa.modeleur.persistence.MdlLayer2dLinePersistence; +import org.fudaa.fudaa.ressource.FudaaResource; import org.fudaa.fudaa.sig.layer.FSigEditor; +import org.fudaa.fudaa.sig.layer.FSigLayerGroup; import org.fudaa.fudaa.sig.layer.FSigLayerLineEditable; /** * Un calque pour le stockage et la manipulation des donn\xE9es altim\xE9triques. * @author Bertrand Marchand - * @version $Id: MdlLayer2dLine.java,v 1.1.2.1 2008/05/13 12:10:44 bmarchan Exp $ + * @version $Id$ */ public abstract class MdlLayer2dLine extends FSigLayerLineEditable implements MdlLayerInterface { + + /** Une op\xE9ration de destruction d'un calque */ + private class OperationForLayerDestruction implements CtuluNamedCommand { + private final BCalque parent_; + private final ZCalqueAffichageDonnees la_; + private final int idx_; + + /** + * @param _parent le calque parent + * @param _la le calque ajout\xE9 + * @param _idx Position du calque. + */ + OperationForLayerDestruction(BCalque _parent, ZCalqueAffichageDonnees _la, int _idx) { + parent_ = _parent; + la_ = _la; + idx_=_idx; + } + + public void redo() { + MdlLayer2dLine.super.detruire(); + } + + public void undo() { + parent_.add(la_,idx_); + } + + public String getName() { + return FudaaResource.FUDAA.getString("D\xE9truire calque"); + } + } /** * Constructeur. Utilise un mod\xE8le de donn\xE9es et un editeur. @@ -83,14 +119,15 @@ if (!((MdlEditionManager)getEditor()).getUi().question("Confirmez la destruction","Le calque contient des g\xE9om\xE9tries.\nVoulez vous poursuivre la destruction ?")) return; } + + int ind=0; + while (ind<cqs.length && cqs[ind]!=this) ind++; + CtuluCommand cmd=new OperationForLayerDestruction(gc,this,ind); + cmd.redo(); + clearSelection(); - super.detruire(); + if (getEditor().getMng()!=null) { + getEditor().getMng().addCmd(cmd); + } } - - -// /** -// * Retourne le nom par defaut du calque. -// * @return Le nom. -// */ -// public abstract String getExtName(); } Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java ___________________________________________________________________ Added: svn:keywords + Date Revision Author URL Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dMultiPoint.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dMultiPoint.java 2008-10-31 15:21:28 UTC (rev 4138) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dMultiPoint.java 2008-10-31 15:23:54 UTC (rev 4139) @@ -1,6 +1,6 @@ /* * @creation 20 janv. 08 - * @modification $Date: 2008/05/13 12:10:45 $ + * @modification $Date$ * @license GNU General Public License 2 * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne * @mail fud...@li... @@ -10,9 +10,12 @@ import java.util.ArrayList; import java.util.Arrays; +import org.fudaa.ctulu.CtuluCommand; +import org.fudaa.ctulu.CtuluNamedCommand; import org.fudaa.ebli.calque.BCalque; import org.fudaa.ebli.calque.BCalquePersistenceInterface; import org.fudaa.ebli.calque.BGroupeCalque; +import org.fudaa.ebli.calque.ZCalqueAffichageDonnees; import org.fudaa.ebli.calque.edition.ZCalqueMultiPointEditable; import org.fudaa.ebli.calque.edition.ZModeleMultiPointEditable; import org.fudaa.ebli.commun.EbliActionInterface; @@ -20,15 +23,46 @@ import org.fudaa.fudaa.modeleur.MdlResource; import org.fudaa.fudaa.modeleur.persistence.MdlLayer2dCloudPersistence; import org.fudaa.fudaa.modeleur.persistence.MdlLayer2dMultiPointPersistence; +import org.fudaa.fudaa.ressource.FudaaResource; import org.fudaa.fudaa.sig.layer.FSigEditor; /** * Un calque pour le stockage et la manipulation des donn\xE9es altim\xE9triques. * @author Bertrand Marchand - * @version $Id: MdlLayer2dMultiPoint.java,v 1.1.2.1 2008/05/13 12:10:45 bmarchan Exp $ + * @version $Id$ */ public abstract class MdlLayer2dMultiPoint extends ZCalqueMultiPointEditable implements MdlLayerInterface { - + + /** Une op\xE9ration de destruction d'un calque */ + private class OperationForLayerDestruction implements CtuluNamedCommand { + private final BCalque parent_; + private final ZCalqueAffichageDonnees la_; + private final int idx_; + + /** + * @param _parent le calque parent + * @param _la le calque ajout\xE9 + * @param _idx Position du calque. + */ + OperationForLayerDestruction(BCalque _parent, ZCalqueAffichageDonnees _la, int _idx) { + parent_ = _parent; + la_ = _la; + idx_=_idx; + } + + public void redo() { + MdlLayer2dMultiPoint.super.detruire(); + } + + public void undo() { + parent_.add(la_,idx_); + } + + public String getName() { + return FudaaResource.FUDAA.getString("D\xE9truire calque"); + } + } + /** * Constructeur. Utilise un mod\xE8le de donn\xE9es et un editeur. * @param _model Modele @@ -82,7 +116,15 @@ return; } - super.detruire(); + int ind=0; + while (ind<cqs.length && cqs[ind]!=this) ind++; + CtuluCommand cmd=new OperationForLayerDestruction(gc,this,ind); + cmd.redo(); + clearSelection(); + + if (getEditor().getMng()!=null) { + getEditor().getMng().addCmd(cmd); + } } // /** Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dMultiPoint.java ___________________________________________________________________ Added: svn:keywords + Date Revision Author URL Id This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |