From: <bma...@us...> - 2008-10-31 17:36:22
|
Revision: 4141 http://fudaa.svn.sourceforge.net/fudaa/?rev=4141&view=rev Author: bmarchan Date: 2008-10-31 17:36:20 +0000 (Fri, 31 Oct 2008) Log Message: ----------- Undo/redo sur destruction de calque + propre. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BArbreCalque.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BArbreCalqueModel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlVisuPanel.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 Added Paths: ----------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/TreeDeleteCalqueAction.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/CalqueDeleteCalqueAction.java Property Changed: ---------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BArbreCalque.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BArbreCalqueModel.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BArbreCalque.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BArbreCalque.java 2008-10-31 15:52:43 UTC (rev 4140) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BArbreCalque.java 2008-10-31 17:36:20 UTC (rev 4141) @@ -1,6 +1,6 @@ /** * @creation 1998-09-02 - * @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... @@ -79,8 +79,7 @@ addMenuItem(EbliResource.EBLI.getString("En dernier"), "DERNIER", EbliResource.EBLI.getIcon("endernier"), true, 0, _arbre); addSeparator(); - addMenuItem(EbliResource.EBLI.getString("D\xE9truire"), "DETRUIRE", CtuluResource.CTULU.getIcon("detruire"), true, 0, - _arbre); + add(new JMenuItem(_arbre.actDelete_)); } } @@ -128,7 +127,7 @@ /** * Un arbre de calques. Composant graphique de representation de la hierarchie des calques sous forme d'arbre. * - * @version $Id: BArbreCalque.java,v 1.35 2007-05-04 13:49:43 deniger Exp $ + * @version $Id$ * @author Guillaume Desnoix */ Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BArbreCalque.java ___________________________________________________________________ Added: svn:keywords + Date Revision Author URL Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BArbreCalqueModel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BArbreCalqueModel.java 2008-10-31 15:52:43 UTC (rev 4140) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BArbreCalqueModel.java 2008-10-31 17:36:20 UTC (rev 4141) @@ -1,6 +1,6 @@ /** * @creation 15 sept. 2003 - * @modification $Date: 2008-05-13 12:10:38 $ + * @modification $Date$ * @license GNU General Public License 2 * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne * @mail de...@fu... @@ -43,71 +43,21 @@ import org.fudaa.ctulu.gui.CtuluLibSwing; import org.fudaa.ctulu.gui.CtuluPopupMenu; +import org.fudaa.ebli.calque.action.TreeDeleteCalqueAction; +import org.fudaa.ebli.commun.EbliActionInterface; import org.fudaa.ebli.commun.EbliLib; import org.fudaa.ebli.geometrie.GrBoite; import org.fudaa.ebli.ressource.EbliResource; /** * @author deniger - * @version $Id: BArbreCalqueModel.java,v 1.47.4.1 2008-05-13 12:10:38 bmarchan Exp $ + * @version $Id$ */ public class BArbreCalqueModel implements TreeModel, PropertyChangeListener, ActionListener, ContainerListener { private static final Object[] PROP_TO_LISTEN = CtuluLibArray.sort(new String[] { "foreground", "visible", "attenue", "rapide", "ajustement", "paletteCouleur", "iconeChanged", "title", "nodeEdit", "alpha", "model" }); - private static void fillPopupMenu(final CtuluPopupMenu _m, final BCalque _c, final BArbreCalqueModel _arbre) { - if ((_c == null) || (_arbre == null)) { - return; - } - _m.addMenuItem(EbliResource.EBLI.getString("Centrer la vue"), getActCenter(), EbliResource.EBLI - .getToolIcon("zoom-layer"), true, _arbre); - /* - * if (_c instanceof BCalqueAffichage) { final BCalqueAffichage ca = (BCalqueAffichage) _c; - * _m.addCheckBox(EbliResource.EBLI.getString("Att\xE9nu\xE9"), "ATTENUE", true, ca.isAttenue(), _arbre); - * _m.addCheckBox(EbliResource.EBLI.getString("Rapide"), "RAPIDE", true, ca.isRapide(), _arbre); } - */ - if (_c instanceof BCalqueInteraction) { - final BCalqueInteraction ci = (BCalqueInteraction) _c; - _m.addCheckBox(EbliResource.EBLI.getString("Gel\xE9"), "GELE", true, ci.isGele(), _arbre); - } - _m.addCheckBox(EbliResource.EBLI.getString("Visible"), "VISIBLE", true, _c.isVisible(), _arbre); - _m.addSeparator(); - _m.addMenuItem(EbliResource.EBLI.getString("En premier"), getActPrem(), EbliResource.EBLI.getIcon("enpremier"), - true, _arbre); - _m.addMenuItem(CtuluLib.getS("Monter"), getActUp(), CtuluResource.CTULU.getIcon("monter"), true, _arbre); - _m.addMenuItem(CtuluLib.getS("Descendre"), getActDown(), CtuluResource.CTULU.getIcon("descendre"), true, _arbre); - _m.addMenuItem(EbliResource.EBLI.getString("En dernier"), getActLast(), EbliResource.EBLI.getIcon("endernier"), - true, _arbre); - if (_c.isTitleModifiable()) { - _m - .addMenuItem(EbliResource.EBLI.getString("Renommer"), "RENAME", BuResource.BU.getIcon("renommer"), true, - _arbre); - } - if (_c.isDestructible()) { - _m.addSeparator(); - _m.addMenuItem(EbliResource.EBLI.getString("D\xE9truire"), getActDel(), EbliResource.EBLI.getIcon("detruire"), true, - _arbre); - } - final JMenuItem[] specificMenus = _c.getSpecificMenuItems(); - if (specificMenus != null) { - _m.addSeparator(); - final int nb = specificMenus.length; - for (int i = 0; i < nb; i++) { - if (specificMenus[i] == null) { - _m.addSeparator(); - } else { - _m.add(specificMenus[i]); - } - } - } - _m.setSize(_m.getPreferredSize()); - } - - private static String getActDel() { - return "DETRUIRE"; - } - private static String getActLast() { return "DERNIER"; } @@ -131,6 +81,7 @@ BCalque calque_; List listeners_; + EbliActionInterface actDelete_=new TreeDeleteCalqueAction(this); final boolean mustListen_; TreeSelectionModel selection_; @@ -250,8 +201,6 @@ actDown(c); } else if (action.equals(getActLast())) { actLast(c); - } else if (action.equals(getActDel())) { - actionDelete(c); } else { int i = action.indexOf('_'); if (i >= 0) { @@ -323,12 +272,8 @@ } } - private void actionDelete(final BCalque[] _c) { - final TreePath[] parent = getSelectionParent(); - for (int i = 0; i < _c.length; i++) { - _c[i].detruire(); - } - selection_.setSelectionPaths(parent); + public void setActionDelete(EbliActionInterface _actionDelete) { + actDelete_=_actionDelete; } private void actionCenter(final BCalque[] _c) { @@ -445,8 +390,7 @@ _m.addMenuItem(EbliResource.EBLI.getString("En dernier"), getActLast(), EbliResource.EBLI.getIcon("endernier"), true, 0, this); _m.addSeparator(); - _m.addMenuItem(EbliResource.EBLI.getString("D\xE9truire"), getActDel(), EbliResource.EBLI.getIcon("detruire"), true, - 0, this); + _m.add(new JMenuItem(actDelete_)); } private String getActNormal() { @@ -476,18 +420,64 @@ _m.addMenuItem(EbliResource.EBLI.getString("En dernier"), getActLast(), EbliResource.EBLI.getIcon("endernier"), true, this); _m.addSeparator(); - _m.addMenuItem(EbliResource.EBLI.getString("D\xE9truire"), getActDel(), EbliResource.EBLI.getIcon("detruire"), true, - this); + _m.add(new JMenuItem(actDelete_)); } public void fillPopupMenu(final CtuluPopupMenu _m) { if (selection_.getSelectionCount() > 1) { fillMenu(_m); } else if (selection_.getSelectionCount() == 1) { - fillPopupMenu(_m, getSelectedCalque(), this); + fillPopupMenu(_m, getSelectedCalque()); } } + private void fillPopupMenu(final CtuluPopupMenu _m, final BCalque _c) { + if ((_c == null) ) { + return; + } + _m.addMenuItem(EbliResource.EBLI.getString("Centrer la vue"), getActCenter(), EbliResource.EBLI + .getToolIcon("zoom-layer"), true, this); + /* + * if (_c instanceof BCalqueAffichage) { final BCalqueAffichage ca = (BCalqueAffichage) _c; + * _m.addCheckBox(EbliResource.EBLI.getString("Att\xE9nu\xE9"), "ATTENUE", true, ca.isAttenue(), _arbre); + * _m.addCheckBox(EbliResource.EBLI.getString("Rapide"), "RAPIDE", true, ca.isRapide(), _arbre); } + */ + if (_c instanceof BCalqueInteraction) { + final BCalqueInteraction ci = (BCalqueInteraction) _c; + _m.addCheckBox(EbliResource.EBLI.getString("Gel\xE9"), "GELE", true, ci.isGele(), this); + } + _m.addCheckBox(EbliResource.EBLI.getString("Visible"), "VISIBLE", true, _c.isVisible(), this); + _m.addSeparator(); + _m.addMenuItem(EbliResource.EBLI.getString("En premier"), getActPrem(), EbliResource.EBLI.getIcon("enpremier"), + true, this); + _m.addMenuItem(CtuluLib.getS("Monter"), getActUp(), CtuluResource.CTULU.getIcon("monter"), true, this); + _m.addMenuItem(CtuluLib.getS("Descendre"), getActDown(), CtuluResource.CTULU.getIcon("descendre"), true, this); + _m.addMenuItem(EbliResource.EBLI.getString("En dernier"), getActLast(), EbliResource.EBLI.getIcon("endernier"), + true, this); + if (_c.isTitleModifiable()) { + _m + .addMenuItem(EbliResource.EBLI.getString("Renommer"), "RENAME", BuResource.BU.getIcon("renommer"), true, + this); + } + if (_c.isDestructible()) { + _m.addSeparator(); + _m.add(new JMenuItem(actDelete_)); + } + final JMenuItem[] specificMenus = _c.getSpecificMenuItems(); + if (specificMenus != null) { + _m.addSeparator(); + final int nb = specificMenus.length; + for (int i = 0; i < nb; i++) { + if (specificMenus[i] == null) { + _m.addSeparator(); + } else { + _m.add(specificMenus[i]); + } + } + } + _m.setSize(_m.getPreferredSize()); + } + /** * Renvoie le fils numero <I>_index </I> du calque <I>_parent </I>. */ Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BArbreCalqueModel.java ___________________________________________________________________ Added: svn:keywords + Date Revision Author URL Id Added: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/TreeDeleteCalqueAction.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/TreeDeleteCalqueAction.java (rev 0) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/TreeDeleteCalqueAction.java 2008-10-31 17:36:20 UTC (rev 4141) @@ -0,0 +1,55 @@ +/* + * @creation 1 avr. 2005 + * @modification $Date$ + * @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.action; + +import java.awt.event.ActionEvent; + +import javax.swing.Icon; +import javax.swing.tree.TreePath; + +import org.fudaa.ctulu.CtuluCommand; +import org.fudaa.ctulu.CtuluNamedCommand; +import org.fudaa.ebli.calque.BArbreCalqueModel; +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.ebli.ressource.EbliResource; + +/** + * Une action pour d\xE9truire un ou plusieurs calque sur un arbre. + * @author Bertrand Marchand + * @version $Id$ + */ +public class TreeDeleteCalqueAction extends EbliActionSimple { + + protected BArbreCalqueModel treeModel_; + + /** + * Construit l'action. + * @param _treeModel Le modele d'arbre. + */ + public TreeDeleteCalqueAction(BArbreCalqueModel _treeModel) { + super(EbliResource.EBLI.getString("D\xE9truire"), EbliResource.EBLI.getIcon("detruire"), "DETRUIRE"); + treeModel_=_treeModel; + } + + public void actionPerformed(final ActionEvent _e) { + if (treeModel_==null) return; + + final BCalque[] c = treeModel_.getSelection(); + if (c.length == 0) { + return; + } + final TreePath[] parent = treeModel_.getSelectionParent(); + for (int i = 0; i < c.length; i++) { + c[i].detruire(); + } + treeModel_.getTreeSelectionModel().setSelectionPaths(parent); + } +} Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/TreeDeleteCalqueAction.java ___________________________________________________________________ Added: svn:keywords + Date Revision Author URL Id Added: svn:eol-style + native Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlVisuPanel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlVisuPanel.java 2008-10-31 15:52:43 UTC (rev 4140) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlVisuPanel.java 2008-10-31 17:36:20 UTC (rev 4141) @@ -17,6 +17,7 @@ import org.fudaa.ebli.ressource.EbliResource; import org.fudaa.fudaa.commun.FudaaLib; import org.fudaa.fudaa.commun.impl.FudaaCommonImplementation; +import org.fudaa.fudaa.modeleur.action.CalqueDeleteCalqueAction; import org.fudaa.fudaa.modeleur.action.CalqueNewCalqueAction; import org.fudaa.fudaa.modeleur.layer.MdlLayer1dTrace; import org.fudaa.fudaa.modeleur.layer.MdlLayer2dCloud; @@ -107,6 +108,9 @@ EbliActionInterface actImport = new FSigImageImportAction(this, cqImg_); cqImg_.setActions(new EbliActionInterface[] { actImport }); + + EbliActionInterface actDeleteLayer=new CalqueDeleteCalqueAction(getGisEditor(),this.getArbreCalqueModel()); + this.getArbreCalqueModel().setActionDelete(actDeleteLayer); } /** Added: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/CalqueDeleteCalqueAction.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/CalqueDeleteCalqueAction.java (rev 0) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/CalqueDeleteCalqueAction.java 2008-10-31 17:36:20 UTC (rev 4141) @@ -0,0 +1,139 @@ +/* + * @creation 1 avr. 2005 + * @modification $Date$ + * @license GNU General Public License 2 + * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail de...@fu... + */ +package org.fudaa.fudaa.modeleur.action; + +import java.awt.event.ActionEvent; + +import javax.swing.tree.TreePath; + +import org.fudaa.ctulu.CtuluCommand; +import org.fudaa.ctulu.CtuluNamedCommand; +import org.fudaa.ebli.calque.BArbreCalqueModel; +import org.fudaa.ebli.calque.BCalque; +import org.fudaa.ebli.calque.BGroupeCalque; +import org.fudaa.ebli.calque.ZCalqueAffichageDonnees; +import org.fudaa.ebli.calque.action.TreeDeleteCalqueAction; +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 supprimer un calque, avec gestion du undo/redo. + * @author Bertrand Marchand + * @version $Id$ + */ +public class CalqueDeleteCalqueAction extends TreeDeleteCalqueAction { + + /** 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() { + la_.detruire(); + } + + public void undo() { + parent_.add(la_,idx_); + } + + public String getName() { + return FudaaResource.FUDAA.getString("D\xE9truire calque"); + } + } + + FSigEditor editor_; + + /** + * Construit l'action. + * @param _title Label de l'action + * @param _icon L'icone pour l'action. + * @param _cqType Le type de calque (Voir {@link MdlLayerFactory}) + * @param _parent Le calque parent dans lequel sera cr\xE9\xE9 le calque. + * @param _editor L'\xE9diteur. + */ + public CalqueDeleteCalqueAction(FSigEditor _editor, BArbreCalqueModel _mdl) { + super(_mdl); + setDefaultToolTip("Naze de chez naze..."); + editor_=_editor; + } + + public void actionPerformed(final ActionEvent _e) { + if (treeModel_==null) return; + + // On conserve le traitement par d\xE9faut pour tous les calques autres que modeleur. + if (!(treeModel_.getSelectedCalque() instanceof MdlLayerInterface)) { + super.actionPerformed(_e); + return; + } + + if (treeModel_.getSelection().length>1) { + editor_.getUi().error("Destruction non autoris\xE9e","La destruction n'est pas autoris\xE9e sur plusieurs calques.", false); + return; + } + + ZCalqueAffichageDonnees cqSel=(ZCalqueAffichageDonnees)treeModel_.getSelectedCalque(); + BGroupeCalque gc=(BGroupeCalque)cqSel.getParent(); + BCalque[] cqs=gc.getCalques(); + int nbexist=0; + for (BCalque cq: cqs) { + if (cq.getName().indexOf(((MdlLayerInterface)cqSel).getExtName())!=-1) nbexist++; + } + if (nbexist<=1) { + editor_.getUi().error("Destruction non autoris\xE9e","La destruction n'est pas autoris\xE9e.\nIl doit exister au moins 1 calque de ce type.", false); + return; + } + if (cqSel.modeleDonnees().getNombre()!=0) { + if (!editor_.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]!=cqSel) ind++; + CtuluCommand cmd=new OperationForLayerDestruction(gc,cqSel,ind); + cmd.redo(); + cqSel.clearSelection(); + + if (editor_.getMng()!=null) { + editor_.getMng().addCmd(cmd); + } + final BCalque[] c = treeModel_.getSelection(); + if (c.length == 0) { + return; + } + final TreePath[] parent = treeModel_.getSelectionParent(); + for (int i = 0; i < c.length; i++) { + c[i].detruire(); + } + treeModel_.getTreeSelectionModel().setSelectionPaths(parent); + } + +// public void actionPerformed(final ActionEvent _e) { +// ZCalqueAffichageDonnees cq=MdlLayerFactory.getInstance().createLayer(cqType_, editor_); +// cq.setName(BGroupeCalque.findUniqueChildName(parent_, ((MdlLayerInterface)cq).getExtName())); +// 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/CalqueDeleteCalqueAction.java ___________________________________________________________________ Added: svn:keywords + Date Revision Author URL Id Added: svn:eol-style + native 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:52:43 UTC (rev 4140) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java 2008-10-31 17:36:20 UTC (rev 4141) @@ -7,27 +7,13 @@ */ package org.fudaa.fudaa.modeleur.layer; -import java.awt.Color; 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; -import org.fudaa.ebli.trace.TraceLigneModel; -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; /** @@ -37,35 +23,6 @@ */ 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. @@ -100,34 +57,4 @@ super.setActions(acts); } - - /** - * Le calque peut \xEAtre d\xE9truit, seulement si plus de g\xE9ometries dedans, et qu'un autre calque du m\xEAme type existe. - */ - public void detruire() { - BGroupeCalque gc=(BGroupeCalque)getParent(); - BCalque[] cqs=gc.getCalques(); - int nbexist=0; - for (BCalque cq: cqs) { - if (cq.getName().indexOf(getExtName())!=-1) nbexist++; - } - if (nbexist<=1) { - ((MdlEditionManager)getEditor()).getUi().error("Destruction non autoris\xE9e","La destruction n'est pas autoris\xE9e.\nIl doit exister au moins 1 calque de ce type.", false); - return; - } - if (this.getModele().getNombre()!=0) { - 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(); - - if (getEditor().getMng()!=null) { - getEditor().getMng().addCmd(cmd); - } - } } 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:52:43 UTC (rev 4140) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dMultiPoint.java 2008-10-31 17:36:20 UTC (rev 4141) @@ -10,20 +10,10 @@ 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; -import org.fudaa.fudaa.modeleur.MdlEditionManager; -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; /** @@ -33,36 +23,6 @@ */ 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 @@ -97,39 +57,4 @@ super.setActions(acts); } - /** - * Le calque peut \xEAtre d\xE9truit, seulement si plus de g\xE9ometries dedans, et qu'un autre calque du m\xEAme type existe. - */ - public void detruire() { - BGroupeCalque gc=(BGroupeCalque)getParent(); - BCalque[] cqs=gc.getCalques(); - int nbexist=0; - for (BCalque cq: cqs) { - if (cq.getName().indexOf(getExtName())!=-1) nbexist++; - } - if (nbexist<=1) { - ((MdlEditionManager)getEditor()).getUi().error("Destruction non autoris\xE9e","La destruction n'est pas autoris\xE9e.\nIl doit exister au moins 1 calque de ce type.", false); - return; - } - if (this.modeleDonnees().getNombre()!=0) { - 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(); - - if (getEditor().getMng()!=null) { - getEditor().getMng().addCmd(cmd); - } - } - -// /** -// * Retourne le nom par defaut du calque. -// * @return Le nom. -// */ -// public abstract String getExtName(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |