Thanks for filling us in on how you use OpenJUMP Eric, and thank you for making the effort to contribute.
The Sunburned Surveyor On 10/1/07, Eric Lemesre <[EMAIL PROTECTED]> wrote: > Hi SS, > > I am using OpenJUMP for visualisation state's vendor : where they work, > where they live and where is her cusmoters. > Other software like ERSI EMG3, is too expensive an less modulate than > OpenJUMP. > > I can get data from PostgreSQL, Degrees, and geoserver and give it to > resposables (quikly ;-) ). > > I hope my compagny always use OpenJUMP and give more developpers to > contribute. > At this moment I am alone ;-{. > > > 2007/9/28, Sunburned Surveyor <[EMAIL PROTECTED]>: > > 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 > > > > > ------------------------------------------------------------------------- > 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