what does currently happen when saving shapefiles w/ too long attrib names? do 
they get auto shorted, the user a warning or?

..ede

On 15.11.2016 23:44, Michaël Michaud wrote:
> Hi,
> 
> Renaming attributes to be compatible with shapefile specification is a 
> common need.
> I also had this need and decided to go through configuration files. With 
> layers having
> 20 to 30 attributes each, if you have to rename attributes more than one 
> or two times,
> a graphical interface will not do it.
> 
> Currently, I just have a quick and dirty plugin, and I'm not completely 
> satisfied with it
> but I would be happy do discuss possible improvements. Current choices 
> and limitations :
> 1 - not linked with drivers : layer names and attribute names are 
> changed in the project
>       -> not possible to remove geometry column
> 2 - renaming is not undoable
>      (structure change is generally not undoable in OpenJUMP)
> 3 - I choose plain text file rather than xml to keep it as simple as 
> possible
> 
> Notice : this is more a ETL capability. Wonder if it could be integrated 
> to Sextante
> modeler.
> 
> Michaël
> 
> 
> Le 15/11/2016 à 21:49, Rahkonen Jukka (MML) a écrit :
>> Good idea. How about having an option to rename the columns to be exported 
>> by the same?  Would be handy for example when exporting columns with long 
>> names into shapefiles when automatic truncation can create non-informative 
>> names.
>>
>> -Jukka Rahkonen-
>>
>> edgar soldin wrote:
>>
>>> maybe a panel to select the columns to be exported for the selected format 
>>> would be A. reusable B. fitting for several formats (eg. csv, json).
>> ..ede
>>
>>> On 15.11.2016 18:44, Giuseppe Aruta wrote:
>>>> Hi everybody
>>>> and thanks for the comments
>>>>
>>>> @Ede >can CSV writer ignore geoms if i want to write a plain data table?
>>>> This is a good point. As CSV exporter also saves geometries in WKT.
>>>> I did a couple of tests (exporting large shapefiles of Italian
>>>> Regions/Provinces to csv), my LibreOffice speadsheet easly opened them
>>>> (after a couple of quirks that the test is too long). Than I can
>>>> delete the geometry columns and work with the other info
>>> --------------------------------------------------
>>>
>>> Anyhow, going back to my modification. The problem cames out from the
>>> following boolean
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> *public static boolean isTable(Layer layer) { FeatureCollectionWrapper
>>> featureCollection = layer
>>> .getFeatureCollectionWrapper();        List featureList =
>>> featureCollection.getFeatures();        Geometry nextGeo = null;        for
>>> (@SuppressWarnings("unchecked")        Iterator<FeatureCollectionWrapper> i
>>> = featureList.iterator(); i                .hasNext();) {
>>> Feature feature = (Feature) i.next();            nextGeo =
>>> feature.getGeometry();        }        if (!featureCollection.isEmpty() &&
>>> nextGeo.isEmpty()) {            return true;        } else {
>>> return false;        }    }*
>>> It is rought and self explaining (I am not a good developer). The
>>> feature collection is scanned. If all the geometries associated to all
>>> features are empty, it gives back true().
>>>
>>> I wonder if I can limit all the trouble on this method, finding a
>>> simpler and less invasive solution. Just a couple of idea:
>>> It scan only over  the first 1000 of features or it does a random scan
>>> over only 1000 features.
>>>
>>> There will be probably other simpler solutions. Any  idea is welcome.
>>>
>>>
>>> @Michael. Thanks for the nice explanation. Very intuitive for the pictures.
>>> Unfortunately it requires a hard job, more that the my (or our) target.
>>>
>>> Best regards
>>>
>>> Peppe
>>>
>>>
>>>
>>>
>>> 2016-11-15 12:41 GMT+01:00 <edgar.sol...@web.de>:
>>>
>>>> Mike,
>>>>
>>>> i see your point. i'd vote to stick what we've got then and simply
>>>> autocreate empty geometries as we do now. just curious, can CSV
>>>> writer ignore geoms if i want to write a plain data table?
>>>>
>>>> ..ede
>>>>
>>>> On 15.11.2016 09:02, Michaël Michaud wrote:
>>>>> Hi,
>>>>>
>>>>> If I had to refactor the layer hierarchy to include datasets without
>>>> geometry, I would probably try something like that
>>>>> (note that it would be a big refactoring, and I am not able to
>>>>> evaluate
>>>> the workload to achieve it)
>>>>> Current layer hierarchy
>>>>>
>>>>> Current layer hierarchy
>>>>>
>>>>> Proposition to include non-geometric data (and to factorize some
>>>> attributes)
>>>>>
>>>>> Proposed layer hierachy
>>>>> Le 14/11/2016 à 14:29, Stefan Steiniger a écrit :
>>>>>> Hi,
>>>>>>
>>>>>> i used empty geomcollection so far, to have something there... I am
>>>>>> not
>>>> sure how much work it would be to introduce a new table/data layer
>>>> without a geometry - as i am not sure if OJ is designed for that.
>>>> Simplest may be to copy and make the field invisible for now.
>>>>>> Perhaps Michaël has a better idea about the possibility to throw
>>>>>> out
>>>> the geom.
>>>>>>
>>>>>>
>>>>>> cheers,
>>>>>>
>>>>>> stefan
>>>>>>
>>>>>>
>>>>>>
>>>>>> ------ Originalnachricht ------
>>>>>> *Von: *
>>>>>> *Datum: *14.11.2016 9:45
>>>>>> *An: *OpenJump develop and use;
>>>>>> *Betreff:*Re: [JPP-Devel] SVN: [5185] core/trunk/src/com/
>>>> vividsolutions/jump/workbench/ui/ LayerNameRenderer.java
>>>>>> i guess the cleanest solution would be a new layer class eg.
>>>>>> DataLayer,
>>>> that simply does not allow adding/editing geometries or does not even
>>>> have a geometry attribute.
>>>>>> in the 2nd case you would probably need a new featurecollection w/o
>>>>>> a
>>>> geometry column as well and the whole thing would throw some
>>>> exceptions here and there, as OJ expects geometries in
>>>> featurecollections, but apart from that it would be clean and the
>>>> renderer would not need to monitor geom changes at all.
>>>>>> ..ede
>>>>>>
>>>>>> On 14.11.2016 10:39, Giuseppe Aruta wrote:
>>>>>>> Thanks Michael Ede
>>>>>>> Indeed I came across (as a side relative problem ) working on
>>>> Saxtante.
>>>>>>> Sextante allows to work on Table files while Oj not. We can take
>>>> advance of
>>>>>>> the Sextante table algorithms  allowing Sextante to decode the
>>>>>>> vector layers, with all features with empty geometries (see  for
>>>>>>> instance
>>>> loading
>>>>>>> .csv on auto mode) as tables (I already added added into Sextante
>>>> binding a
>>>>>>> Boolean method that allows to decode these files).
>>>>>>> I wondered if users would also have benefit  to visualize that a
>>>> table is
>>>>>>> loaded into OJ workbench, with a table icon.
>>>>>>> I will check other solutions. Thanks for the hint.
>>>>>>> Peppe
>>>>>>>
>>>>>>> Il 13/Nov/2016 23:21, "Michaël Michaud"  ha
>>>>>>> scritto:
>>>>>>>
>>>>>>>> Hi Peppe,
>>>>>>>>
>>>>>>>> Seel also my answer on 2016-10-29.
>>>>>>>>
>>>>>>>> TreeLayerNamePanel has a listener, but to avoid a
>>>>>>>> featureCollection
>>>> scan
>>>>>>>> after each change
>>>>>>>> you probably need to keep a cache in the Layer as suggested by
>>>>>>>> Ede,
>>>> and
>>>>>>>> use the Layer's
>>>>>>>> listener to update the cache every time a feature is added,
>>>>>>>> removed
>>>> or
>>>>>>>> changed
>>>>>>>>
>>>>>>>> Michaël
>>>>>>>>
>>>>>>>>
>>>>>>>> Le 13/11/2016 à 19:51, edgar.sol...@web.de a écrit :
>>>>>>>>> thanks.. how about implementing the caching/listener approach if
>>>>>>>>> you
>>>>>>>> like to have icon? ..ede
>>>>>>>>> On 13.11.2016 18:57, Giuseppe Aruta wrote:
>>>>>>>>>> Ok Ede, I didn't  know it. I will revert the change.
>>>>>>>>>> Thanks again
>>>>>>>>>> Peppe
>>>>>>>>>>
>>>>>>>>>> Il 13/Nov/2016 18:48,  ha scritto:
>>>>>>>>>>
>>>>>>>>>>> Peppe,
>>>>>>>>>>>
>>>>>>>>>>> NACK.. this is going to get very slow for huge datasets
>>>>>>>>>>> containing
>>>>>>>> empty
>>>>>>>>>>> geoms only, as it is run on every redraw of the layer tree.
>>>>>>>>>>> please
>>>>>>>> cache
>>>>>>>>>>> the state and use a layer change listener or else users will
>>>> complain
>>>>>>>> about
>>>>>>>>>>> a frozen OJ some time in the future and we will have a hard
>>>>>>>>>>> time
>>>> to
>>>>>>>>>>> pinpoint the reason, again ;)
>>>>>>>>>>>
>>>>>>>>>>> ..ede
>>>>>>>>>>>
>>>>>>>>>>> On 13.11.2016 18:41, jump-pilot-...@lists.sourceforge.net wrote:
>>>>>>>>>>>> Revision: 5185
>>>>>>>>>>>>             http://sourceforge.net/p/jump-pilot/code/5185
>>>>>>>>>>>> Author:   ma15569
>>>>>>>>>>>> Date:     2016-11-13 17:41:37 +0000 (Sun, 13 Nov 2016)
>>>>>>>>>>>> Log Message:
>>>>>>>>>>>> -----------
>>>>>>>>>>>> The layer tree shows a table icon for layers that have
>>>>>>>>>>>> features
>>>> with
>>>>>>>>>>> empty geometries
>>>>>>>>>>>> Modified Paths:
>>>>>>>>>>>> --------------
>>>>>>>>>>>>       core/trunk/src/com/vividsolutions/jump/workbench/
>>>>>>>>>>> ui/LayerNameRenderer.java
>>>>>>>>>>>> Modified: core/trunk/src/com/vividsolutions/jump/workbench/
>>>>>>>>>>> ui/LayerNameRenderer.java
>>>>>>>>>>>> ============================================================
>>>> =======
>>>>>>>>>>>> --- core/trunk/src/com/vividsolutions/jump/workbench/
>>>>>>>> ui/LayerNameRenderer.java
>>>>>>>>>>>         2016-11-13 17:21:20 UTC (rev 5184)
>>>>>>>>>>>> +++ core/trunk/src/com/vividsolutions/jump/workbench/
>>>>>>>> ui/LayerNameRenderer.java
>>>>>>>>>>>         2016-11-13 17:41:37 UTC (rev 5185)
>>>>>>>>>>>> @@ -36,6 +36,7 @@
>>>>>>>>>>>>    import java.awt.Rectangle;
>>>>>>>>>>>>    import java.io.File;
>>>>>>>>>>>>    import java.util.Iterator;
>>>>>>>>>>>> +import java.util.List;
>>>>>>>>>>>>
>>>>>>>>>>>>    import javax.swing.DefaultListCellRenderer;
>>>>>>>>>>>>    import javax.swing.Icon;
>>>>>>>>>>>> @@ -54,9 +55,11 @@
>>>>>>>>>>>>    import org.openjump.core.rasterimage.RasterImageLayer;
>>>>>>>>>>>>
>>>>>>>>>>>>    import com.vividsolutions.jts.geom.Envelope;
>>>>>>>>>>>> +import com.vividsolutions.jts.geom.Geometry;
>>>>>>>>>>>>    import com.vividsolutions.jump.I18N;
>>>>>>>>>>>>    import com.vividsolutions.jump.feature.Feature;
>>>>>>>>>>>>    import com.vividsolutions.jump.feature.FeatureCollection;
>>>>>>>>>>>> +import com.vividsolutions.jump.feature.
>>>> FeatureCollectionWrapper;
>>>>>>>>>>>>    import com.vividsolutions.jump.io.datasource.DataSourceQuery;
>>>>>>>>>>>>    import com.vividsolutions.jump.util.StringUtil;
>>>>>>>>>>>>    import com.vividsolutions.jump.workbench.JUMPWorkbench;
>>>>>>>>>>>> @@ -118,6 +121,7 @@
>>>>>>>>>>>>        private ImageIcon rasterIcon =
>>>> IconLoader.icon("map_13.png");
>>>>>>>>>>>>        private ImageIcon sextante_rasterIcon =
>>>>>>>> IconLoader.icon("mapSv2_13.
>>>>>>>>>>> png");
>>>>>>>>>>>>        private ImageIcon sextante_rasterIcon2 =
>>>>>>>>>>> IconLoader.icon("mapSv2_13bw.png");
>>>>>>>>>>>> +    private ImageIcon table_Icon =
>>>>>>>>>>>> + IconLoader.icon("Table.gif");
>>>>>>>>>>>>        private final static String LAYER_NAME = I18N
>>>>>>>>>>>>                .get("org.openjump.core.ui.plugin.layer.
>>>>>>>>>>> LayerPropertiesPlugIn.Layer-Name");
>>>>>>>>>>>>        private final static String FILE_NAME =
>>>>>>>>>>> I18N.get("ui.MenuNames.FILE");
>>>>>>>>>>>> @@ -379,6 +383,12 @@
>>>>>>>>>>>>                        .getFeatureCollectionWrapper().size() >
>>>>>>>>>>>> 1
>>>> ?
>>>>>>>>>>> multiRasterIcon
>>>>>>>>>>>>                        : rasterIcon);
>>>>>>>>>>>>                imageLabel.setVisible(true);
>>>>>>>>>>>> +        } else if (showColorPanel && layerable instanceof Layer
>>>>>>>>>>>> +            && isTable((Layer) layerable)) {
>>>>>>>>>>>> +          //Show a table icon if the Layer has features with
>>>> empty
>>>>>>>>>>> geometries
>>>>>>>>>>>> +        imageLabel.setIcon(table_Icon);
>>>>>>>>>>>> +        imageLabel.setVisible(true);
>>>>>>>>>>>> +
>>>>>>>>>>>>            } else if (showColorPanel && layerable instanceof
>>>> Layer) {
>>>>>>>>>>>>                colorPanel.init((Layer) layerable, isSelected,
>>>>>>>>>>>>                        list.getBackground(),
>>>>>>>> list.getSelectionBackground())
>>>>>>>>>>> ;
>>>>>>>>>>>> @@ -1022,4 +1032,27 @@
>>>>>>>>>>>>                    && bgc.equals(p.getBackground()) &&
>>>> p.isOpaque();
>>>>>>>>>>>>            return !colorMatchOrOpaque && super.isOpaque();
>>>>>>>>>>>>        }
>>>>>>>>>>>> +
>>>>>>>>>>>> +    /*
>>>>>>>>>>>> +     * [Giuseppe Aruta 11.2016] . True if all the layer
>>>> geometries
>>>>>>>> are
>>>>>>>>>>> empty
>>>>>>>>>>>> +     * (Geometrycollection empty). Workaround to decode
>>>>>>>>>>>> + table
>>>> files
>>>>>>>>>>> (like .csv or .dbf)
>>>>>>>>>>>> +     *  so that they are loaded in Sextante as table
>>>>>>>>>>>> +      */
>>>>>>>>>>>> +    public static boolean isTable(Layer layer) {
>>>>>>>>>>>> +        FeatureCollectionWrapper featureCollection = layer
>>>>>>>>>>>> +                .getFeatureCollectionWrapper();
>>>>>>>>>>>> +        List featureList = featureCollection.getFeatures();
>>>>>>>>>>>> +        Geometry nextGeo = null;
>>>>>>>>>>>> +        for (@SuppressWarnings("unchecked")
>>>>>>>>>>>> +        Iterator i =
>>>>>>>> featureList.iterator();
>>>>>>>>>>> i
>>>>>>>>>>>> +                .hasNext();) {
>>>>>>>>>>>> +            Feature feature = (Feature) i.next();
>>>>>>>>>>>> +            nextGeo = feature.getGeometry();
>>>>>>>>>>>> +        }
>>>>>>>>>>>> +        if (!featureCollection.isEmpty() && nextGeo.isEmpty()) {
>>>>>>>>>>>> +            return true;
>>>>>>>>>>>> +        } else {
>>>>>>>>>>>> +            return false;
>>>>>>>>>>>> +        }
>>>>>>>>>>>> +    }
>>>>>>>>>>>>    }
>>>>>>>>>>>> \ No newline at end of file
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> ------------------------------------------------------------
>>>>>>>>>>> ------------------
>>>>>>>>>>>> Developer Access Program for Intel Xeon Phi Processors Access
>>>>>>>>>>>> to Intel Xeon Phi processor-based developer platforms.
>>>>>>>>>>>> With one year of Intel Parallel Studio XE.
>>>>>>>>>>>> Training and support from Colfax.
>>>>>>>>>>>> Order your platform today. http://sdm.link/xeonphi
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> Jump-pilot-devel mailing list
>>>>>>>>>>>> Jump-pilot-devel@lists.sourceforge.net
>>>>>>>>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>>>>>>>>>>
>>>>>>>>>>> ------------------------------------------------------------
>>>>>>>>>>> ------------------
>>>>>>>>>>> Developer Access Program for Intel Xeon Phi Processors Access
>>>>>>>>>>> to Intel Xeon Phi processor-based developer platforms.
>>>>>>>>>>> With one year of Intel Parallel Studio XE.
>>>>>>>>>>> Training and support from Colfax.
>>>>>>>>>>> Order your platform today. http://sdm.link/xeonphi
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Jump-pilot-devel mailing list
>>>>>>>>>>> Jump-pilot-devel@lists.sourceforge.net
>>>>>>>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> ------------------------------------------------------------
>>>>>>>> ------------------
>>>>>>>>>> Developer Access Program for Intel Xeon Phi Processors Access
>>>>>>>>>> to Intel Xeon Phi processor-based developer platforms.
>>>>>>>>>> With one year of Intel Parallel Studio XE.
>>>>>>>>>> Training and support from Colfax.
>>>>>>>>>> Order your platform today. http://sdm.link/xeonphi
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Jump-pilot-devel mailing list
>>>>>>>>>> Jump-pilot-devel@lists.sourceforge.net
>>>>>>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>>>>>>>>
>>>>>>>>> ------------------------------------------------------------
>>>>>>>> ------------------
>>>>>>>>> Developer Access Program for Intel Xeon Phi Processors Access to
>>>>>>>>> Intel Xeon Phi processor-based developer platforms.
>>>>>>>>> With one year of Intel Parallel Studio XE.
>>>>>>>>> Training and support from Colfax.
>>>>>>>>> Order your platform today. http://sdm.link/xeonphi
>>>>>>>>> _______________________________________________
>>>>>>>>> Jump-pilot-devel mailing list
>>>>>>>>> Jump-pilot-devel@lists.sourceforge.net
>>>>>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>>>>>>>
>>>>>>>>
>>>>>>>> ------------------------------------------------------------
>>>>>>>> ------------------
>>>>>>>> Developer Access Program for Intel Xeon Phi Processors Access to
>>>>>>>> Intel Xeon Phi processor-based developer platforms.
>>>>>>>> With one year of Intel Parallel Studio XE.
>>>>>>>> Training and support from Colfax.
>>>>>>>> Order your platform today. http://sdm.link/xeonphi
>>>>>>>> _______________________________________________
>>>>>>>> Jump-pilot-devel mailing list
>>>>>>>> Jump-pilot-devel@lists.sourceforge.net
>>>>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ------------------------------------------------------------
>>>> ------------------
>>>>>>> Developer Access Program for Intel Xeon Phi Processors Access to
>>>>>>> Intel Xeon Phi processor-based developer platforms.
>>>>>>> With one year of Intel Parallel Studio XE.
>>>>>>> Training and support from Colfax.
>>>>>>> Order your platform today. http://sdm.link/xeonphi
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Jump-pilot-devel mailing list
>>>>>>> Jump-pilot-devel@lists.sourceforge.net
>>>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>>>>>
>>>>>> ------------------------------------------------------------
>>>> ------------------
>>>>>> Developer Access Program for Intel Xeon Phi Processors Access to
>>>>>> Intel Xeon Phi processor-based developer platforms.
>>>>>> With one year of Intel Parallel Studio XE.
>>>>>> Training and support from Colfax.
>>>>>> Order your platform today. http://sdm.link/xeonphi
>>>>>> _______________________________________________
>>>>>> Jump-pilot-devel mailing list
>>>>>> Jump-pilot-devel@lists.sourceforge.net
>>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>>>>
>>>>>>
>>>>>> ------------------------------------------------------------
>>>> ------------------
>>>>>> Developer Access Program for Intel Xeon Phi Processors Access to
>>>>>> Intel Xeon Phi processor-based developer platforms.
>>>>>> With one year of Intel Parallel Studio XE.
>>>>>> Training and support from Colfax.
>>>>>> Order your platform today. http://sdm.link/xeonphi
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Jump-pilot-devel mailing list
>>>>>> Jump-pilot-devel@lists.sourceforge.net
>>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>>>
>>>>>
>>>>> ------------------------------------------------------------
>>>> ------------------
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Jump-pilot-devel mailing list
>>>>> Jump-pilot-devel@lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>>>
>>>> ------------------------------------------------------------
>>>> ------------------
>>>> _______________________________________________
>>>> Jump-pilot-devel mailing list
>>>> Jump-pilot-devel@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>>
>>>
>>>
>>> ----------------------------------------------------------------------
>>> --------
>>>
>>>
>>>
>>> _______________________________________________
>>> Jump-pilot-devel mailing list
>>> Jump-pilot-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>
>> ------------------------------------------------------------------------------
>> _______________________________________________
>> Jump-pilot-devel mailing list
>> Jump-pilot-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>
>> ------------------------------------------------------------------------------
>> _______________________________________________
>> Jump-pilot-devel mailing list
>> Jump-pilot-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>
> 
> 
> ------------------------------------------------------------------------------
> _______________________________________________
> Jump-pilot-devel mailing list
> Jump-pilot-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
> 

------------------------------------------------------------------------------
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to