Eric,

I am getting to this e-mail a little bit late, but I see that Michael
and Stefan have already given you a warm welcome.

I just want to say thanks for your contribution and I hope we get to
work together in the future.

I'm curious, how are you using OpenJUMP?

The Sunburned Surveyor

On 9/28/07, Stefan Steiniger <[EMAIL PROTECTED]> wrote:
> Hei again,
>
>
> Eric Lemesre schrieb:
> > Salut Stefan,
> >
> > I am totaly agree with this condition Of course.
> > I prefer to get write acces by pass the second condition. I think it is
> > the better way for all.
>
> ok..
> Btw. it depends how fast you are with your second extension. But if it
> does not take weeks, you can commit both tools together if you have
> write access.
>
> >
> > For my second contribution i want to extends JoinTable plugin.
> >  * select fields to join
> >  * select datasource type
>
> sounds very good :)
>
> > Can i add Jlist  to MultiInputDialog?
>
> yes.. i think so :)
> If nobodoy else has a problem with.
>
> stefan
>
> >
> > Eric
> >
> > 2007/9/26, Stefan Steiniger < [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>:
> >
> >     Salut Eric,
> >
> >     nice to have you on board :)
> >     We have setup some informal rules for contribution. You get write
> >     access
> >     to the svn in two ways:
> >     1) you get immediate access to the svn if you got a recommendation by
> >     developer that is already well known by the project (or a member); or
> >     2) we review the first two contributions. If both are ok you will grant
> >     write access. As you passed the 1st code-review round already according
> >     to Michael, I would like to ask you, to send to your second contribution
> >     to the devel-list for a review (if you have finished that work already)
> >
> >     I hope you understand this policy and I suppose the 2nd sample you
> >     presenet will be a piece of cake for you? Alteratively you may tell us
> >     (or me and Michael personally) about your programming experience.
> >
> >     Anyway, as it seems to me you will qualify ;) i ask you to already send
> >     me your sourceforge account name (on my personal email), so i can
> >     prepare anything for svn-write access.
> >
> >     cheers, currently from Germany (Btw. I met some people from Intevation
> >     on the Intergeo fair)
> >
> >     stefan
> >
> >     @ Michael: thank you for reviewing! If you want you can commit the code.
> >     Otherwise I will do in the next days.
> >
> >
> >     Michaël Michaud schrieb:
> >      > Hi Eric,
> >      >
> >      > Nice to see another french guy involved in OpenJUMP development ;-)
> >      > I reviewed your code and it's ok for me.
> >      > Maybe you should explain the use case for setting an attribute with
> >      > another attribute value.
> >      > Anyway, this is just a new capability of an existing plugin.
> >      > I can commit the code, or we have to ask Sunburned Surveyor or Stefan
> >      > Steiniger (I think Stefan is out of his office until next week)
> >     who are
> >      > the administrators of the site and can give svn access to new
> >     developers.
> >      >
> >      > Michaël
> >      >
> >      > Eric Lemesre a écrit :
> >      >
> >      >> Hello,
> >      >>
> >      >> Thank verry much for the good job in OpenJUMP.
> >      >>
> >      >> I make somme modifications in the plugIn ReplaceValuePlugIn (in
> >      >> org.openjump.sigle.plugin.replace).
> >      >> This plugin replace a attribute with a constante. And now we can
> >     copy
> >      >> one attribute to an other one.
> >      >>
> >      >> I joint the code.
> >      >>
> >      >> How can i have acces to repository and what is rules to use?
> >      >> Or how to put this modifications in JPP?
> >      >>
> >      >> I have planed somme other works and want to give it to the community
> >      >>
> >      >> Thanks
> >      >> Eric
> >      >>
> >      >>
> >     ------------------------------------------------------------------------
> >
> >      >>
> >      >>
> >      >> /*
> >      >> * The Unified Mapping Platform (JUMP) is an extensible,
> >     interactive GUI
> >      >> * for visualizing and manipulating spatial features with
> >     geometry and attributes.
> >      >> *
> >      >> * Copyright (C) 2003 Vivid Solutions
> >      >> *
> >      >> * This program is free software; you can redistribute it and/or
> >      >> * modify it under the terms of the GNU General Public License
> >      >> * as published by the Free Software Foundation; either version 2
> >      >> * of the License, or (at your option) any later version.
> >      >> *
> >      >> * This program is distributed in the hope that it will be useful,
> >      >> * but WITHOUT ANY WARRANTY; without even the implied warranty of
> >      >> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> >      >> * GNU General Public License for more details.
> >      >> *
> >      >> * You should have received a copy of the GNU General Public License
> >      >> * along with this program; if not, write to the Free Software
> >      >> * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
> >     MA  02111-1307, USA.
> >      >> *
> >      >> * For more information, contact:
> >      >> *
> >      >> * Vivid Solutions
> >      >> * Suite #1A
> >      >> * 2328 Government Street
> >      >> * Victoria BC  V8T 5G5
> >      >> * Canada
> >      >> *
> >      >> * (250)385-6040
> >      >> * www.vividsolutions.com <http://www.vividsolutions.com>
> >      >> */
> >      >>
> >      >> package org.openjump.sigle.plugin.replace;
> >      >>
> >      >> import java.awt.event.ActionEvent;
> >      >> import java.awt.event.ActionListener;
> >      >> import java.util.*;
> >      >>
> >      >> import javax.swing.ImageIcon;
> >      >> import javax.swing.JCheckBox;
> >      >> import javax.swing.JComboBox;
> >      >> import javax.swing.JOptionPane;
> >      >> import javax.swing.JTextField;
> >      >>
> >      >>
> >      >>
> >      >> import org.openjump.sigle.utilities.gui.DialogUtil;
> >      >>
> >      >> import com.vividsolutions.jump.I18N;
> >      >> import com.vividsolutions.jump.feature.*;
> >      >> import com.vividsolutions.jump.task.*;
> >      >> import com.vividsolutions.jump.workbench.WorkbenchContext ;
> >      >> import com.vividsolutions.jump.workbench.model.*;
> >      >> import com.vividsolutions.jump.workbench.plugin.*;
> >      >> import com.vividsolutions.jump.workbench.ui.*;
> >      >> import com.vividsolutions.jump.workbench.ui.images.IconLoader ;
> >      >>
> >      >>
> >      >> /**
> >      >> *
> >      >> * @author Erwan Bocher Laboratoire RESO UMR CNRS 6590
> >      >> * @url www.projet-sigle.org <http://www.projet-sigle.org>
> >      >> * @curentdate 25 juil. 06
> >      >> * @package name org.openjump.sigle.plugin.replace
> >      >> * @license Licence CeCILL http://www.cecill.info/
> >      >> * @todo TODO
> >      >> *
> >      >> */
> >      >>
> >      >>
> >      >>
> >      >> public class ReplaceValuePlugIn
> >      >>    extends AbstractPlugIn
> >      >>    implements ThreadedPlugIn
> >      >> {
> >      >>
> >      >>
> >      >>  private MultiInputDialog dialog;
> >      >>  //-- replace later with correct language
> >      >>  private static String ATTRIBUTE =
> >     I18N.get("org.openjump.sigle.plugin.ReplaceValuePlugIn.Attribute");
> >      >>  private static String VALUE =
> >     I18N.get("org.openjump.sigle.plugin.ReplaceValuePlugIn.New-value");
> >      >>  private static String ATTRIBUTE_SRC =
> >     I18N.get("org.openjump.sigle.plugin.ReplaceValuePlugIn.Attribute-src");
> >      >>  private static String BY_ATTRIBUTE =
> >     
> > I18N.get("org.openjump.sigle.plugin.ReplaceValuePlugIn.New-value-by-copy");
> >      >>  private static String TYPE = "";
> >      >>  private static String SELECTED_ONLY =
> >     GenericNames.USE_SELECTED_FEATURES_ONLY ;
> >      >>
> >      >>
> >      >>  private Layer layer;
> >      >>  private String attrName;
> >      >>  private String attrNameSrc;
> >      >>  private String value = "";
> >      >>  private boolean useSelected = true;
> >      >>  private boolean byAttribute = false;
> >      >>  public static final ImageIcon ICON = IconLoader.icon("Wrench.gif");
> >      >>
> >      >>
> >      >>  public ReplaceValuePlugIn()
> >      >>  {
> >      >>
> >      >>  }
> >      >>
> >      >>  public void initialize(PlugInContext context) {
> >      >>
> >      >>        context.getFeatureInstaller().addMainMenuItem(this,new
> >     String[] { MenuNames.TOOLS, MenuNames.TOOLS_EDIT_ATTRIBUTES },
> >      >>                      this.getName(), false, null,
> >      >>                      
> > createEnableCheck(context.getWorkbenchContext())
> >      >>                              );
> >      >>
> >      >>      }
> >      >>
> >      >>  public String getName(){
> >      >>      return
> >     
> > I18N.get("org.openjump.sigle.plugin.ReplaceValuePlugIn.Replace-Attribute-Value");
> >      >>  }
> >      >>
> >      >>  public boolean execute(PlugInContext context) throws Exception {
> >      >> // lemesre: duplicate from private initialisation
> >      >>        ATTRIBUTE =
> >     I18N.get("org.openjump.sigle.plugin.ReplaceValuePlugIn.Attribute");
> >      >>    VALUE =
> >     I18N.get("org.openjump.sigle.plugin.ReplaceValuePlugIn.New-value ");
> >      >>        ATTRIBUTE_SRC =
> >     I18N.get("org.openjump.sigle.plugin.ReplaceValuePlugIn.Attribute-src");
> >      >>        BY_ATTRIBUTE =
> >     I18N.get("org.openjump.sigle.plugin.ReplaceValuePlugIn.New-value-by-copy
> >     ");
> >      >>    SELECTED_ONLY = GenericNames.USE_SELECTED_FEATURES_ONLY;
> >      >>
> >      >>      dialog = new MultiInputDialog(
> >      >>        context.getWorkbenchFrame(), getName(), true);
> >      >>    setDialogValues(dialog, context);
> >      >>    if (layer.isEditable()){
> >      >>    GUIUtil.centreOnWindow(dialog);
> >      >>    dialog.setVisible(true);
> >      >>    if (! dialog.wasOKPressed()) { return false; }
> >      >>    getDialogValues(dialog);
> >      >>    return true;
> >      >>        }
> >      >>        else {
> >      >>
> >      >>          JOptionPane.showMessageDialog(dialog,
> >     I18N.get("ui.SchemaPanel.layer-must-be-editable"));
> >      >>          }
> >      >>        return false;
> >      >>
> >      >>  }
> >      >>
> >      >>  public void run(TaskMonitor monitor, PlugInContext context)
> >      >>      throws Exception
> >      >>  {
> >      >>
> >      >>
> >      >>              // input-proofing
> >      >>              if (layer == null) return;
> >      >>              if (attrName == null) return;
> >      >>        if (value == null && attrNameSrc == null) return;
> >      >>
> >      >>
> >      >>          List srcFeatures =
> >     layer.getFeatureCollectionWrapper().getFeatures();
> >      >>
> >      >>
> >      >>          if (useSelected){
> >      >>
> >      >>          Collection featureSelected =
> >     
> > context.getLayerViewPanel().getSelectionManager().getFeaturesWithSelectedItems(layer);
> >     ;
> >      >>
> >      >>          //System.out.println("Feature selected");
> >      >>          monitor.report(I18N.get("
> >     org.openjump.sigle.plugin.ReplaceValuePlugIn.Replacing-values"));
> >      >>                if (byAttribute) {
> >      >>                        replaceByAttributeValue(featureSelected,
> >     attrName,attrNameSrc);
> >      >>                } else {
> >      >>          replaceValue(featureSelected, attrName, value);
> >      >>                }
> >      >>
> >      >>          }
> >      >>
> >      >>          else {
> >      >>
> >      >>              //System.out.println("All features");
> >      >>                if (byAttribute) {
> >      >>                        replaceByAttributeValue(srcFeatures,
> >     attrName,attrNameSrc);
> >      >>                } else {
> >      >>                  replaceValue(srcFeatures, attrName, value);
> >      >>          }
> >      >>
> >      >>
> >      >>
> >      >>   }
> >      >>        // TODO: look for FeatureEventType.ATTRIBUTE_MODIFIED
> >      >>        //  it is probably better than Layer changed
> >      >>        // [eric lemesre]
> >      >>        layer.fireAppearanceChanged();
> >      >>  }
> >      >>
> >      >>
> >      >>  private void setDialogValues(final MultiInputDialog dialog,
> >     PlugInContext context)
> >      >>  {
> >      >>
> >      >>
> >      >>    //Initial layer value is null
> >      >>
> >      >>    layer = context.getSelectedLayer(0);
> >      >>
> >      >>    //  combos sélection d'un champ
> >      >>    List columns = DialogUtil.getFieldsFromLayerWithoutGeometry
> >     (layer);
> >      >>    String column1 = null;
> >      >>
> >      >>    if (columns.size()>0)
> >      >>      column1 = (String) columns.get(0);  // récupération du
> >     premier attribut s'il existe
> >      >>
> >      >>
> >      >>    dialog.addComboBox(ATTRIBUTE,column1,columns , "Toto");
> >      >>
> >      >>
> >      >>    final JTextField textfield = dialog.addTextField(
> >      >>              
> > I18N.get("org.openjump.sigle.plugin.ReplaceValuePlugIn.Attribute-type
> >     "),
> >      >>                      
> > (layer.getFeatureCollectionWrapper().getFeatureSchema().getAttributeType(column1)).toString(),
> >      >>                      10, null, null);
> >      >>    textfield.setEnabled (false);
> >      >>
> >      >>    dialog.getComboBox(ATTRIBUTE).addActionListener(new
> >     ActionListener() {
> >      >>        public void actionPerformed(ActionEvent e) {
> >      >>            // recuperation de la combo couche
> >      >>            JComboBox cb = (JComboBox) e.getSource();
> >      >>            // recuperation de l'attribut selectionné
> >      >>           String attributeName = (String) cb.getSelectedItem();
> >      >>
> >      >>
> >     
> > textfield.setText((layer.getFeatureCollectionWrapper().getFeatureSchema().getAttributeType(attributeName)).toString());
> >      >>
> >      >>         }
> >      >>              });
> >      >>
> >      >>
> >      >>        dialog.addCheckBox(BY_ATTRIBUTE, byAttribute);
> >      >>        dialog.addComboBox(ATTRIBUTE_SRC,column1,columns , "Nom
> >     du champ source de la valeur"); //TODO:I18N move to I18N [eric lemesre]
> >      >>        dialog.getComboBox(ATTRIBUTE_SRC).setEnabled(byAttribute);
> >      >>
> >      >>        final JTextField valuetextfield =
> >     dialog.addTextField(VALUE,value,20, null, null);
> >      >>        valuetextfield.setEnabled (true);
> >      >>
> >      >>        dialog.getCheckBox(BY_ATTRIBUTE).addActionListener(new
> >     ActionListener() {
> >      >>                public void actionPerformed(ActionEvent e) {
> >      >>                        JCheckBox chk = (JCheckBox) e.getSource();
> >      >>                        valuetextfield.setEnabled(!chk.isSelected());
> >      >>                        //
> >     valuetextfield.setVisible(!chk.isSelected());
> >      >>                        dialog.getComboBox
> >     (ATTRIBUTE_SRC).setEnabled(chk.isSelected());
> >      >>                        //
> >     dialog.getComboBox(ATTRIBUTE_SRC).setVisible(chk.isSelected());
> >      >>                }
> >      >>        });
> >      >>
> >      >>         dialog.addCheckBox(SELECTED_ONLY, useSelected);
> >      >>
> >      >>  }
> >      >>
> >      >>  private void getDialogValues(MultiInputDialog dialog) {
> >      >>
> >      >>          attrName = dialog.getText(ATTRIBUTE);
> >      >>          value = dialog.getText(VALUE);
> >      >>          useSelected = dialog.getBoolean(SELECTED_ONLY);
> >      >>        attrNameSrc = dialog.getText(ATTRIBUTE_SRC);
> >      >>        byAttribute = dialog.getBoolean (BY_ATTRIBUTE);
> >      >>
> >      >>        }
> >      >>
> >      >>  private void  replaceValue(Collection selectedFC, String attrName,
> >      >>            String value){
> >      >>
> >      >>        AttributeType type;
> >      >>        type = ((Feature)
> >     selectedFC.iterator().next()).getSchema().getAttributeType(attrName);
> >      >>
> >      >>        for (Iterator i = selectedFC.iterator(); i.hasNext(); ) {
> >      >>                Feature f = (Feature) i.next();
> >      >>
> >      >>                if (byAttribute) {
> >      >>                        // remplacement par la valeur de
> >     l'attribut selectionné
> >      >>
> >      >>                }else {
> >      >>                        // remplacement par la valeur saisie
> >      >>                if (type == AttributeType.DOUBLE) {
> >      >>
> >      >>                                f.setAttribute(attrName, new
> >     Double (value));
> >      >>
> >      >>                        } else if (type == AttributeType.INTEGER)  {
> >      >>                                f.setAttribute(attrName, new
> >     Integer (value));
> >      >>
> >      >>                        } else if (type == AttributeType.STRING) {
> >      >>                                 f.setAttribute(attrName, new
> >     String (value));
> >      >>
> >      >>                        } else {
> >      >>
> >      >>                }
> >      >>                }
> >      >>        }
> >      >>
> >      >>                }
> >      >>
> >      >>  private void  replaceByAttributeValue(Collection selectedFC,
> >     String attrNameDest,
> >      >>                String attrNameSrc){
> >      >>
> >      >>        //AttributeType typeSrc;
> >      >>        AttributeType typeDest;
> >      >>        String AttrValue;
> >      >>        typeDest = ((Feature)
> >     
> > selectedFC.iterator().next()).getSchema().getAttributeType(attrNameDest);
> >      >>
> >      >>        for (Iterator i = selectedFC.iterator (); i.hasNext(); ) {
> >      >>                Feature f = (Feature) i.next();
> >      >>
> >      >>                AttrValue = (String) f.getAttribute(attrNameSrc);
> >      >>
> >      >>                if (byAttribute) {
> >      >>                        // remplacement par la valeur de
> >     l'attribut selectionné
> >      >>                        if (typeDest == AttributeType.DOUBLE) {
> >      >>                                f.setAttribute (attrNameDest, new
> >     Double (AttrValue));
> >      >>
> >      >>                        } else if (typeDest ==
> >     AttributeType.INTEGER)  {
> >      >>                                f.setAttribute(attrNameDest, new
> >     Integer (AttrValue));
> >      >>
> >      >>                        } else if (typeDest ==
> >     AttributeType.STRING) {
> >      >>                                f.setAttribute(attrNameDest, new
> >     String (AttrValue));
> >      >>
> >      >>                        } else {
> >      >>
> >      >>                }
> >      >>
> >      >>                }else {
> >      >>                }
> >      >>        }
> >      >>
> >      >>        }
> >      >>
> >      >>  public static MultiEnableCheck
> >     createEnableCheck(WorkbenchContext workbenchContext) {
> >      >>      EnableCheckFactory checkFactory = new
> >     EnableCheckFactory(workbenchContext);
> >      >>
> >      >>      return new MultiEnableCheck()
> >      >>              .add(checkFactory.createAtLeastNLayersMustExistCheck
> >     (1))
> >      >>              
> > .add(checkFactory.createSelectedLayersMustBeEditableCheck());
> >      >>  }
> >      >>
> >      >> }
> >      >>
> >      >>
> >      >>
> >     ------------------------------------------------------------------------
> >
> >      >>
> >      >>
> >     
> > -------------------------------------------------------------------------
> >      >> This SF.net email is sponsored by: Microsoft
> >      >> Defy all challenges. Microsoft(R) Visual Studio 2005.
> >      >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> >      >>
> >      >>
> >     ------------------------------------------------------------------------
> >
> >      >>
> >      >> _______________________________________________
> >      >> Jump-pilot-devel mailing list
> >      >> Jump-pilot-devel@lists.sourceforge.net
> >     <mailto:Jump-pilot-devel@lists.sourceforge.net>
> >      >> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
> >      >>
> >      >>
> >      >
> >      >
> >      >
> >     
> > -------------------------------------------------------------------------
> >
> >      > This SF.net email is sponsored by: Microsoft
> >      > Defy all challenges. Microsoft(R) Visual Studio 2005.
> >      > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> >     <http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/>
> >      > _______________________________________________
> >      > Jump-pilot-devel mailing list
> >      > Jump-pilot-devel@lists.sourceforge.net
> >     <mailto:Jump-pilot-devel@lists.sourceforge.net>
> >      > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
> >      >
> >      >
> >
> >
> >     
> > -------------------------------------------------------------------------
> >     This SF.net email is sponsored by: Microsoft
> >     Defy all challenges. Microsoft(R) Visual Studio 2005.
> >     http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> >     _______________________________________________
> >     Jump-pilot-devel mailing list
> >     Jump-pilot-devel@lists.sourceforge.net
> >     <mailto:Jump-pilot-devel@lists.sourceforge.net>
> >     https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
> >
> >
> >
> > ------------------------------------------------------------------------
> >
> > -------------------------------------------------------------------------
> > This SF.net email is sponsored by: Microsoft
> > Defy all challenges. Microsoft(R) Visual Studio 2005.
> > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > Jump-pilot-devel mailing list
> > Jump-pilot-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2005.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> Jump-pilot-devel mailing list
> Jump-pilot-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to