From: <emm...@us...> - 2008-11-03 11:20:31
|
Revision: 4151 http://fudaa.svn.sourceforge.net/fudaa/?rev=4151&view=rev Author: emmanuel_martin Date: 2008-11-03 11:20:21 +0000 (Mon, 03 Nov 2008) Log Message: ----------- bugfix #50 : "Jonction de 2 courbes de niveau ?\195?\160 Z diff?\195?\169rents : Afficher message pour demander la valeur de Z." 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/ZModeleLigneBriseeEditable.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-11-03 10:36:06 UTC (rev 4150) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueLigneBriseeEditable.java 2008-11-03 11:20:21 UTC (rev 4151) @@ -91,7 +91,7 @@ // On vide la selection, les 2 lignes sont supprim\xE9es par la jonction. clearSelection(); - return getModelePoly().joinGeometries(idxLines, idxSels, _cmd)!=-1; + return getModelePoly().joinGeometries(idxLines, idxSels, editor_, _cmd)!=-1; } private boolean removeAtomicObjects(final CtuluCommandContainer _cmd, final CtuluUI _ui) { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleLigneBriseeEditable.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleLigneBriseeEditable.java 2008-11-03 10:36:06 UTC (rev 4150) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleLigneBriseeEditable.java 2008-11-03 11:20:21 UTC (rev 4151) @@ -9,6 +9,16 @@ import gnu.trove.TIntObjectIterator; +import java.awt.Frame; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import javax.swing.BorderFactory; +import javax.swing.JButton; +import javax.swing.JComponent; +import javax.swing.JDialog; +import javax.swing.JPanel; + import org.fudaa.ctulu.CtuluAnalyze; import org.fudaa.ctulu.CtuluCommandComposite; import org.fudaa.ctulu.CtuluCommandContainer; @@ -31,6 +41,8 @@ import org.fudaa.ebli.geometrie.GrPolyligne; import org.fudaa.ebli.geometrie.GrSegment; +import com.memoire.bu.BuBorderLayout; +import com.memoire.bu.BuLabel; import com.memoire.fu.FuLog; import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.CoordinateSequence; @@ -350,10 +362,11 @@ * * @param _ligneIdx Les index des 2 lignes. * @param _idx Les index des 2 sommets des 2 lignes. + * @param _editor le ZEditorDefault pour pouvoir demander \xE0 l'utilisateur la valeur de Z. Peut \xEAtre null. * @param _cmd Le conteneur de commandes. * @return L'index de la nouvelle ligne si OK, -1 sinon. */ - public int joinGeometries(int[] _ligneIdx, int[] _idx, final CtuluCommandContainer _cmd) { + public int joinGeometries(int[] _ligneIdx, int[] _idx, final ZEditorDefault _editor, final CtuluCommandContainer _cmd) { if (geometries_ == null) { return -1; } @@ -427,6 +440,47 @@ else if (geometries_.getModel(att).getAttribute()==GISAttributeConstants.ETAT_GEOM) { dataline[att]=GISAttributeConstants.ATT_VAL_ETAT_MODI; } + // Cas particulier de l'attribut Z, demande de la valeur \xE0 l'utilisateur si non identique entre les deux polylignes + else if (geometries_.getModel(att).getAttribute().getID().equals("Z")) { + // Valeurs identiques + if(geometries_.getModel(att).getObjectValueAt(_ligneIdx[0])==geometries_.getModel(att).getObjectValueAt(_ligneIdx[1])) + dataline[att]=geometries_.getModel(att).getAttribute().createDataForGeom(geometries_.getModel(att).getObjectValueAt(_ligneIdx[0]),1); + // Valeurs diff\xE9rentes => demande \xE0 l'utilisateur + else { + // Utilisation d'une fen\xEAtre modale pour l'obtension du Z. + class myDialogModal extends JDialog implements ActionListener{ + private JComponent text_; + public myDialogModal(Frame _frame){ + super(_frame, EbliLib.getS("Choix du Z"), true); + // Position & resizable + setLocation(_frame.getLocation().x+_frame.getSize().width/2, _frame.getLocation().y+_frame.getSize().height/2); + setResizable(false); + // Contenu + JPanel container=new JPanel(new BuBorderLayout(2, 2)); + container.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2)); + text_=GISAttributeConstants.BATHY.getEditor().createEditorComponent(); + JButton ok=new JButton(EbliLib.getS("Valider")); + ok.addActionListener(this); + container.add(new BuLabel(EbliLib.getS("Valeur de Z :")), BuBorderLayout.WEST); + container.add(text_, BuBorderLayout.EAST); + container.add(ok, BuBorderLayout.SOUTH); + add(container); + pack(); + } + public void actionPerformed(ActionEvent e) { + setVisible(false); + dispose(); + } + public Double getValue(){ + return (Double) GISAttributeConstants.BATHY.getEditor().getValue(text_); + } + } + myDialogModal dialog =new myDialogModal(_editor.getFrame()); + dialog.setVisible(true); + dataline[att]=geometries_.getModel(att).getAttribute().createDataForGeom(dialog.getValue(),1); + } + } + // On prend arbitrairement la valeur de la premi\xE8re polyligne. else dataline[att]=geometries_.getModel(att).getAttribute().createDataForGeom(geometries_.getModel(att).getObjectValueAt(_ligneIdx[0]),1); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |