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