From: <emm...@us...> - 2008-10-17 16:14:39
|
Revision: 4080 http://fudaa.svn.sourceforge.net/fudaa/?rev=4080&view=rev Author: emmanuel_martin Date: 2008-10-17 16:14:29 +0000 (Fri, 17 Oct 2008) Log Message: ----------- La boite d'edition de g?\195?\169om?\195?\169trie est acc?\195?\169ssible d?\195?\168s qu'une g?\195?\169om?\195?\169trie est selectionn?\195?\169e, m?\195?\170me si celle ci est dans un calque diff?\195?\169rent de celui selectionn?\195?\169. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZEditorDefault.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigEditor.java 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-10-17 15:17:26 UTC (rev 4079) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZEditorDefault.java 2008-10-17 16:14:29 UTC (rev 4080) @@ -13,10 +13,9 @@ import java.awt.Graphics2D; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; -import java.awt.event.KeyListener; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; -import java.util.Vector; +import java.util.ArrayList; import javax.swing.AbstractButton; import javax.swing.Action; @@ -36,6 +35,7 @@ import org.fudaa.ctulu.gui.CtuluLibSwing; import org.fudaa.ebli.calque.BCalque; import org.fudaa.ebli.calque.ZCalqueAffichageDonnees; +import org.fudaa.ebli.calque.ZCalqueAffichageDonneesInterface; import org.fudaa.ebli.calque.ZCalqueClickInteraction; import org.fudaa.ebli.calque.ZCalqueClikInteractionListener; import org.fudaa.ebli.calque.ZEbliCalquesPanel; @@ -53,6 +53,9 @@ import org.fudaa.ebli.trace.TraceIcon; import com.memoire.bu.BuDesktop; +import com.memoire.bu.BuInternalFrame; +import com.memoire.bu.BuLabel; +import com.memoire.bu.BuPopupWindow; import com.memoire.bu.BuResource; import com.memoire.fu.Fu; import com.memoire.fu.FuLog; @@ -723,38 +726,50 @@ } } + /** + * Contrairement \xE0 ce que laisse penser le prototype, cette fonction lance + * l'\xE9dition des g\xE9om\xE9tries quelque soit le calque dans lequel les g\xE9om\xE9tries + * sont selectionn\xE9. Le param\xE8tre _target, n'est pas utilis\xE9. + */ public String edit(final Object _target) { - if (!isEditable(_target)) { - return EbliLib.getS("Non \xE9ditable"); - } - final ZCalqueEditable ed = (ZCalqueEditable) _target; - if (ed.isSelectionEmpty()) { + // R\xE9cup\xE9ration des calques contenant des g\xE9om\xE9tries selectionn\xE9es \\ + ZCalqueAffichageDonneesInterface[] calques=panel_.getScene().getAllLayers(); + ArrayList<ZCalqueAffichageDonneesInterface> claquesWithSelectedObjects=new ArrayList<ZCalqueAffichageDonneesInterface>(); + for (int i=0; i<calques.length; i++) + if (!calques[i].isSelectionEmpty()&&calques[i] instanceof ZCalqueEditable) + claquesWithSelectedObjects.add(calques[i]); + // Verification du le nombre de calques contenant des selections + if (claquesWithSelectedObjects.size()==0) return EbliLib.getS("La s\xE9lection courante est vide"); + else if (claquesWithSelectedObjects.size()>1){ + ui_.warn("Information", "La selection dans plusieurs calques n'est pas g\xE9r\xE9e par la fen\xEAtre d'\xE9dition.", false); + /*BuInternalFrame i = new BuInternalFrame("Information", false, true, false, false); + i.add(new BuLabel("La selection dans plusieurs calques n'est pas g\xE9r\xE9e par la fen\xEAtre d'\xE9dition.")); + i.setVisible(true); + i.*/ + return EbliLib.getS("La selection dans plusieurs calques n'est pas g\xE9r\xE9e par la fen\xEAtre d'\xE9dition."); } - if (ed.isAtomicMode()) { - editVertexObject(ed); - return null; - } - final ZCalqueAffichageDonnees calque = (ZCalqueAffichageDonnees) ed; - if (calque.isOnlyOneObjectSelected()) { - editSingleObject(ed); - } else { - - CtuluDialogPanel pn = null; - if (ed.getModelEditable().getGeomData() instanceof GISZoneCollectionPoint) { - - pn = GISGuiBuilder.buildFor((GISZoneCollectionPoint) ed.getModelEditable().getGeomData(), ed - .getLayerSelection().getSelectedIndex(), getMng()); - } else { - pn = GISGuiBuilder.buildForGlobAtt(ed.getModelEditable().getGeomData(), ed.getLayerSelection() + ZCalqueEditable calque=(ZCalqueEditable)claquesWithSelectedObjects.get(0); + + // G\xE9n\xE9ration d'une boite d'\xE9dition selon le type de selection et d'\xE9dition \\ + if (((ZCalqueEditable)calque).isAtomicMode()) + editVertexObject((ZCalqueEditable)calque); + else if (calque.isOnlyOneObjectSelected()) + // Une seule g\xE9om\xE9trie est \xE0 \xE9diter + editSingleObject((ZCalqueEditable)claquesWithSelectedObjects.get(0)); + else { + // Plusieurs g\xE9om\xE9tries sont \xE0 \xE9diter + CtuluDialogPanel pn=null; + if (calque.getModelEditable().getGeomData() instanceof GISZoneCollectionPoint) + pn=GISGuiBuilder.buildFor((GISZoneCollectionPoint)calque.getModelEditable().getGeomData(), calque.getLayerSelection() .getSelectedIndex(), getMng()); - } - if (pn == null) { - getUi().message(ed.getTitle(), EbliLib.getS("Aucune donn\xE9e \xE0 \xE9diter"), true); - } else { - pn.afficheModale(getFrame(), ed.getTitle()); - } - + else + pn=GISGuiBuilder.buildForGlobAtt(calque.getModelEditable().getGeomData(), calque.getLayerSelection().getSelectedIndex(), + getMng()); + if (pn==null) + getUi().message(calque.getTitle(), EbliLib.getS("Aucune donn\xE9e \xE0 \xE9diter"), true); + else + pn.afficheModale(getFrame(), calque.getTitle()); } return null; } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigEditor.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigEditor.java 2008-10-17 15:17:26 UTC (rev 4079) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigEditor.java 2008-10-17 16:14:29 UTC (rev 4080) @@ -10,6 +10,7 @@ import java.awt.Frame; import java.awt.event.ActionEvent; import java.io.File; +import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -330,9 +331,13 @@ if (Fu.DEBUG && FuLog.isDebug()) { FuLog.debug("FTR gis target= " + FSigEditor.this.getTarget()); } - final BCalque cq = getSupport().getCalqueActif(); - super.setEnabled(FSigEditor.this.isEditable(cq) && (cq instanceof ZCalqueAffichageDonneesInterface) && - !((ZCalqueAffichageDonneesInterface)cq).isSelectionEmpty()); + // R\xE9cup\xE9ration des calques contenant des g\xE9om\xE9tries selectionn\xE9es \\ + ZCalqueAffichageDonneesInterface[] calques=getSupport().getAllLayers(); + ArrayList<ZCalqueAffichageDonneesInterface> claquesWithSelectedObjects=new ArrayList<ZCalqueAffichageDonneesInterface>(); + for (int i=0; i<calques.length; i++) + if (!calques[i].isSelectionEmpty()&&calques[i] instanceof ZCalqueEditable) + claquesWithSelectedObjects.add(calques[i]); + super.setEnabled(claquesWithSelectedObjects.size()>0); } public String getEnableCondition() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |