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, <edgar.sol...@web.de> 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<FeatureCollectionWrapper> 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

Reply via email to