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