From: <bma...@us...> - 2009-01-09 10:59:51
|
Revision: 4339 http://fudaa.svn.sourceforge.net/fudaa/?rev=4339&view=rev Author: bmarchan Date: 2009-01-09 10:59:45 +0000 (Fri, 09 Jan 2009) Log Message: ----------- Task#141 : Possibilit?\195?\169 de rendre selectionnable/non des calques. 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/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonnees.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesAbstract.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesInterface.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/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java 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/modeleur1d/view/VueBief.java Added Paths: ----------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/ressource/non-selectionnable.png Property Changed: ---------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesAbstract.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 2009-01-09 10:31:50 UTC (rev 4338) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BArbreCalque.java 2009-01-09 10:59:45 UTC (rev 4339) @@ -53,6 +53,11 @@ import org.fudaa.ebli.commun.EbliPopupListener; import org.fudaa.ebli.ressource.EbliResource; +/** + * Un menu pour le composant de cartographie utilisant des calques non bas\xE9s sur des mod\xE8le. + * @see EbliFilleCalques + * @deprecated + */ class BArbreNormalMenu extends BuMenu { /** @@ -321,10 +326,6 @@ } } - public BArbreNormalMenu buildNormalMenu() { - return new BArbreNormalMenu(getArbreModel()); - } - public JPopupMenu buildPopupMenu(final BCalque _calque) { final CtuluPopupMenu r = new CtuluPopupMenu(); getArbreModel().fillPopupMenu(r); @@ -584,6 +585,13 @@ if (calque instanceof ZCalqueAffichageDonneesAbstract) { final ZCalqueAffichageDonneesAbstract cq = (ZCalqueAffichageDonneesAbstract) calque; lbSelect_.setVisible(!cq.isSelectionEmpty()); + + if (!cq.isSelectable()) { + if (s.length() > 0) { + s.append(CtuluLibString.ESPACE); + } + s.append(EbliResource.EBLI.getString("nonsel.")); + } } else { lbSelect_.setVisible(false); 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 2009-01-09 10:31:50 UTC (rev 4338) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BArbreCalqueModel.java 2009-01-09 10:59:45 UTC (rev 4339) @@ -30,6 +30,7 @@ import javax.swing.tree.TreeSelectionModel; import com.memoire.bu.BuBorders; +import com.memoire.bu.BuCheckBoxMenuItem; import com.memoire.bu.BuGridLayout; import com.memoire.bu.BuLabel; import com.memoire.bu.BuMenu; @@ -201,6 +202,10 @@ actDown(c); } else if (action.equals(getActLast())) { actLast(c); + } else if (action.equals("SET_SELECTABLE")) { + actSetSelectable(c,true); + } else if (action.equals("UNSET_SELECTABLE")) { + actSetSelectable(c,false); } else { int i = action.indexOf('_'); if (i >= 0) { @@ -223,6 +228,8 @@ quickRefresh(); } else if ("VISIBLE".equals(action)) { calque.setVisible(!calque.isVisible()); + } else if ("SELECTABLE".equals(action) && (calque instanceof ZCalqueAffichageDonneesAbstract)) { + ((ZCalqueAffichageDonneesAbstract) calque).setSelectable(!((ZCalqueAffichageDonneesAbstract) calque).isSelectable()); // refreshSelect = true; } else if ("RENAME".equals(action)) { renameLayer(calque); @@ -256,6 +263,20 @@ } } + /** + * Rend les calques s\xE9lectionnables ou non, en controlaant qu'ils puissent l'etre. + * @param _c Les calques. + * @param _b True : Selectionnables. + */ + private void actSetSelectable(final BCalque[] _c, boolean _b) { + for (int i = 0; i < _c.length; i++) { + if (_c[i] instanceof ZCalqueAffichageDonneesAbstract) { + ZCalqueAffichageDonneesAbstract cq=(ZCalqueAffichageDonneesAbstract)_c[i]; + if (cq.canSetSelectable()) cq.setSelectable(_b); + } + } + } + protected void renameLayer(final BCalque _calque) { final String title = _calque.getTitle(); final BuTextField ft = new BuTextField(title); @@ -374,6 +395,9 @@ _m.addMenuItem(EbliResource.EBLI.getString("Visible"), "VISIBLE_OUI", null, true, 0, this); _m.addMenuItem(EbliResource.EBLI.getString("Cach\xE9"), "VISIBLE_NON", BuResource.BU.getIcon("cacher"), true, 0, this); _m.addSeparator(); + _m.addMenuItem(EbliResource.EBLI.getString("S\xE9lectionnable"), "SET_SELECTABLE", EbliResource.EBLI.getIcon("fleche"), true, 0, this); + _m.addMenuItem(EbliResource.EBLI.getString("Non s\xE9lectionnable"), "UNSET_SELECTABLE", EbliResource.EBLI.getIcon("non-selectionnable"), true, 0, this); + _m.addSeparator(); _m.addMenuItem(EbliResource.EBLI.getString("Att\xE9nu\xE9"), "ATTENUE_OUI", null, true, 0, this); _m.addMenuItem(EbliResource.EBLI.getString(getActNormal()), "ATTENUE_NON", null, true, 0, this); _m.addSeparator(); @@ -404,6 +428,9 @@ final JMenuItem it = _m.addMenuItem(EbliResource.EBLI.getString("Cach\xE9"), "VISIBLE_NON", null, true, this); it.setIcon(BuResource.BU.getIcon("cacher")); _m.addSeparator(); + _m.addMenuItem(EbliResource.EBLI.getString("S\xE9lectionnable"), "SET_SELECTABLE", EbliResource.EBLI.getIcon("fleche"), true, this); + _m.addMenuItem(EbliResource.EBLI.getString("Non s\xE9lectionnable"), "UNSET_SELECTABLE", EbliResource.EBLI.getIcon("non-selectionnable"), true, this); + _m.addSeparator(); _m.addMenuItem(EbliResource.EBLI.getString("Att\xE9nu\xE9"), "ATTENUE_OUI", null, true, this); _m.addMenuItem(EbliResource.EBLI.getString(getActNormal()), "ATTENUE_NON", null, true, this); _m.addSeparator(); @@ -447,6 +474,14 @@ _m.addCheckBox(EbliResource.EBLI.getString("Gel\xE9"), "GELE", true, ci.isGele(), this); } _m.addCheckBox(EbliResource.EBLI.getString("Visible"), "VISIBLE", true, _c.isVisible(), this); + if (_c instanceof ZCalqueAffichageDonneesAbstract) { + ZCalqueAffichageDonneesAbstract cq=(ZCalqueAffichageDonneesAbstract)_c; + if (cq.canSetSelectable()) { + BuCheckBoxMenuItem mi= + _m.addCheckBox(EbliResource.EBLI.getString("S\xE9lectionnable"), "SELECTABLE", EbliResource.EBLI.getIcon("fleche"), true, cq.isSelectable()); + mi.addActionListener(this); + } + } _m.addSeparator(); _m.addMenuItem(EbliResource.EBLI.getString("En premier"), getActPrem(), EbliResource.EBLI.getIcon("enpremier"), true, this); 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 2009-01-09 10:31:50 UTC (rev 4338) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonnees.java 2009-01-09 10:59:45 UTC (rev 4339) @@ -116,6 +116,8 @@ * @return true si un objet de ce calque est selection par le point. */ public boolean changeSelection(final GrPoint _pt, final int _tolerancePixel, final int _action) { + if (!isSelectable()) return false; + final CtuluListSelection l = selection(_pt, _tolerancePixel); changeSelection(l, _action); if ((l == null) || (l.isEmpty())) { @@ -134,6 +136,8 @@ * @return true si des objets ont ete selectionnes par le polygone */ public boolean changeSelection(final LinearRing _poly, final int _action, final int _mode) { + if (!isSelectable()) return false; + final CtuluListSelection l = selection(_poly, _mode); changeSelection(l, _action); if ((l == null) || (l.isEmpty())) { @@ -143,6 +147,8 @@ } public boolean changeSelection(final LinearRing[] _p, final int _action, final int _mode) { + if (!isSelectable()) return false; + if (_p == null) { return false; } @@ -159,6 +165,8 @@ } public void clearSelection() { + if (!isSelectable()) return; + if ((selection_ != null) && (!selection_.isEmpty())) { selection_.clear(); fireSelectionEvent(); @@ -181,6 +189,8 @@ } public void inverseSelection() { + if (!isSelectable()) return; + if (isSelectionEmpty()) { return; } @@ -208,7 +218,7 @@ } public void selectAll() { - if (!isVisible()) return; + if (!isVisible() || !isSelectable()) return; initSelection(); selection_.addInterval(0, modeleDonnees().getNombre() - 1); fireSelectionEvent(); @@ -239,6 +249,8 @@ * @return true si une selection a \xE9t\xE9 effectu\xE9e. */ public boolean setSelection(final int[] _idx) { + if (!isSelectable()) return false; + if (_idx == null) { return false; } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesAbstract.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesAbstract.java 2009-01-09 10:31:50 UTC (rev 4338) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesAbstract.java 2009-01-09 10:59:45 UTC (rev 4339) @@ -24,6 +24,7 @@ import org.fudaa.ebli.controle.BConfigurableComposite; import org.fudaa.ebli.controle.BConfigurableInterface; import org.fudaa.ebli.controle.BSelecteurAlpha; +import org.fudaa.ebli.controle.BSelecteurCheckBox; import org.fudaa.ebli.controle.BSelecteurIconModel; import org.fudaa.ebli.controle.BSelecteurLineModel; import org.fudaa.ebli.geometrie.GrBoite; @@ -40,7 +41,7 @@ /** * @author deniger - * @version $Id: ZCalqueAffichageDonneesAbstract.java,v 1.47.6.2 2008-05-13 12:10:36 bmarchan Exp $ + * @version $Id$ */ public abstract class ZCalqueAffichageDonneesAbstract extends BCalqueAffichage implements ZCalqueAffichageDonneesInterface { @@ -98,6 +99,9 @@ */ protected boolean isPaletteCouleurUsed_; protected boolean painted_ = true; + + /** Les objets du calques sont-ils selectionnables */ + protected boolean isSelectable_=true; protected BPalettePlageAbstract paletteCouleur_; @@ -111,6 +115,25 @@ public boolean isEditable() { return modeleDonnees() != null && modeleDonnees().getNombre() > 0; } + + public boolean isSelectable() { + return isSelectable_; + } + + /** + * Definit si les objets du calque sont selectionnables. + */ + public void setSelectable(boolean _b) { + if (isSelectable() != _b) { + if (!_b) clearSelection(); + isSelectable_= _b; + firePropertyChange("selectable", !_b, _b); + } + } + + public boolean canSetSelectable() { + return false; + } public void paintAllInImage(final Graphics2D _g, final GrMorphisme _versEcran, final GrMorphisme _versReel, final GrBoite _clipReel) { Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesAbstract.java ___________________________________________________________________ Added: svn:keywords + Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesInterface.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesInterface.java 2009-01-09 10:31:50 UTC (rev 4338) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonneesInterface.java 2009-01-09 10:59:45 UTC (rev 4339) @@ -75,6 +75,18 @@ boolean isEditable(); /** + * Definit si les objets du calque sont ou non selectionnables. + * @return true : Les objets sont selectionnables. + */ + boolean isSelectable(); + + /** + * Definit si l'utilisateur peut changer le caract\xE8re s\xE9lectionnable/non depuis l'action "Selectionnable". + * @return true : Si le calque peut \xEAtre rendu selectionnable + */ + public boolean canSetSelectable(); + + /** * @return la boite zoomant sur la selection. Cette boite est la boite englobante * augment\xE9e d'une marge. */ 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 2009-01-09 10:31:50 UTC (rev 4338) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueGeometry.java 2009-01-09 10:59:45 UTC (rev 4339) @@ -195,6 +195,8 @@ } public boolean changeSelection(final GrPoint _pt, final int _tolerancePixel, final int _action) { + if (!isSelectable()) return false; + if (isAtomicMode_) { final EbliListeSelectionMulti l = selectionMulti(_pt, _tolerancePixel); changeSelectionMulti(l, _action); @@ -207,6 +209,8 @@ } public boolean changeSelection(final LinearRing _poly, final int _action, final int _mode) { + if (!isSelectable()) return false; + if (isAtomicMode_) { final EbliListeSelectionMulti l = selectionMulti(_poly); changeSelectionMulti(l, _action); @@ -248,6 +252,8 @@ } public void clearSelection() { + if (!isSelectable()) return; + // dans le mode edition de noeuds if (isAtomicMode_) { if (selectionMulti_ != null && !selectionMulti_.isEmpty()) { @@ -367,6 +373,8 @@ } public void inverseSelection() { + if (!isSelectable()) return; + if (isSelectionEmpty()) { return; } @@ -656,7 +664,7 @@ } public void selectAll() { - if (!isVisible()) return; + if (!isVisible() || !isSelectable()) return; if (!isAtomicMode_) { initSelection(); @@ -877,6 +885,8 @@ } public boolean setSelection(final int[] _idx) { + if (!isSelectable()) return false; + // Aucun controle n'est fait sur la visibilit\xE9 ou non des objets d'indices pass\xE9s. if (!isAtomicMode_) { return super.setSelection(_idx); 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 2009-01-09 10:31:50 UTC (rev 4338) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueLigneBrisee.java 2009-01-09 10:59:45 UTC (rev 4339) @@ -223,6 +223,8 @@ } public boolean changeSelection(final GrPoint _pt, final int _tolerancePixel, final int _action) { + if (!isSelectable()) return false; + if (isAtomicMode_) { final EbliListeSelectionMulti l = selectionMulti(_pt, _tolerancePixel); changeSelectionMulti(l, _action); @@ -235,6 +237,8 @@ } public boolean changeSelection(final LinearRing _poly, final int _action, final int _mode) { + if (!isSelectable()) return false; + if (isAtomicMode_) { final EbliListeSelectionMulti l = selectionMulti(_poly); changeSelectionMulti(l, _action); @@ -276,6 +280,8 @@ } public void clearSelection() { + if (!isSelectable()) return; + // dans le mode edition de noeuds if (isAtomicMode_) { if (selectionMulti_ != null && !selectionMulti_.isEmpty()) { @@ -436,28 +442,9 @@ } } - public void inverseSelectedSelection() { - if (!isAtomicMode_) { - super.inverseSelection(); - return; - } - if (isSelectionEmpty()) { - return; - } - for (int i = modele_.getNombre() - 1; i >= 0; i--) { - CtuluListSelection s = selectionMulti_.get(i); - if (s == null) { - s = new CtuluListSelection(); - s.setSelectionInterval(0, modele_.getNbPointForGeometry(i) - 1); - selectionMulti_.set(i, s); - } else { - s.inverse(modele_.getNbPointForGeometry(i)); - } - } - fireSelectionEvent(); - } - public void inverseSelection() { + if (!isSelectable()) return; + if (!isAtomicMode_) { // super.inverseSelection(); if (isSelectionEmpty()) { @@ -750,7 +737,7 @@ } public void selectAll() { - if (!isVisible()) return; + if (!isVisible() || !isSelectable()) return; if (!isAtomicMode_) { // super.selectAll(); @@ -995,6 +982,8 @@ } public boolean setSelection(final int[] _idx) { + if (!isSelectable()) return false; + // Aucun controle n'est fait sur la visibilit\xE9 ou non des objets d'indices pass\xE9s. if (!isAtomicMode_) { return super.setSelection(_idx); Added: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/ressource/non-selectionnable.png =================================================================== (Binary files differ) Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/ressource/non-selectionnable.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: svn:keywords + 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 2009-01-09 10:31:50 UTC (rev 4338) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java 2009-01-09 10:59:45 UTC (rev 4339) @@ -54,4 +54,8 @@ super.setActions(acts); } + + public boolean canSetSelectable() { + return true; + } } 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 2009-01-09 10:31:50 UTC (rev 4338) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dMultiPoint.java 2009-01-09 10:59:45 UTC (rev 4339) @@ -53,4 +53,8 @@ super.setActions(acts); } + + public boolean canSetSelectable() { + return true; + } } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/view/VueBief.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/view/VueBief.java 2009-01-09 10:31:50 UTC (rev 4338) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/modeleur1d/view/VueBief.java 2009-01-09 10:59:45 UTC (rev 4339) @@ -70,14 +70,17 @@ BGroupeCalque groupeCalque=new BGroupeCalque(); // Ajout du calque d'axe hydraulique MdlLayer1dAxe axeHydraulique=new MdlLayer1dAxe((FSigEditor)gisEditor_); + axeHydraulique.setSelectable(false); axeHydraulique.modele(bief.axeHydraulique_); groupeCalque.add(axeHydraulique); // Ajout du calque de lignes directrices MdlLayer2dDirectionLine lignesDirectrices=new MdlLayer2dDirectionLine((FSigEditor)gisEditor_); + lignesDirectrices.setSelectable(false); lignesDirectrices.modele(bief.lignesDirectrices_); groupeCalque.add(lignesDirectrices); // Ajout du calque de limites de stockage MdlLayer2dConstraintLine limitesStockage=new MdlLayer2dConstraintLine((FSigEditor)gisEditor_); + limitesStockage.setSelectable(false); limitesStockage.modele(bief.limitesStockages_); groupeCalque.add(limitesStockage); // Ajout du calque de profils @@ -86,6 +89,7 @@ groupeCalque.add(profils); // Ajout du calque de rives MdlLayer1dBank rives=new MdlLayer1dBank((FSigEditor)gisEditor_); + rives.setSelectable(false); rives.modele(bief.rives_); groupeCalque.add(rives); // Fin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |