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

Reply via email to