]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - gis/plugins/org.argeo.gis.ui/src/main/java/org/argeo/gis/ui/data/FeatureNode.java
First working GIS
[lgpl/argeo-commons.git] / gis / plugins / org.argeo.gis.ui / src / main / java / org / argeo / gis / ui / data / FeatureNode.java
diff --git a/gis/plugins/org.argeo.gis.ui/src/main/java/org/argeo/gis/ui/data/FeatureNode.java b/gis/plugins/org.argeo.gis.ui/src/main/java/org/argeo/gis/ui/data/FeatureNode.java
new file mode 100644 (file)
index 0000000..3a05773
--- /dev/null
@@ -0,0 +1,40 @@
+package org.argeo.gis.ui.data;
+
+import java.io.IOException;
+
+import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.TreeParent;
+import org.geotools.data.DataStore;
+import org.geotools.data.FeatureSource;
+import org.opengis.feature.simple.SimpleFeature;
+import org.opengis.feature.simple.SimpleFeatureType;
+import org.opengis.feature.type.Name;
+
+public class FeatureNode extends TreeParent {
+       private final DataStore dataStore;
+       private final Name featureName;
+
+       public FeatureNode(DataStore dataStore, Name name) {
+               super(name.toString());
+               this.dataStore = dataStore;
+               this.featureName = name;
+       }
+
+       public FeatureSource<SimpleFeatureType, SimpleFeature> getFeatureSource() {
+               try {
+                       return dataStore.getFeatureSource(featureName);
+               } catch (IOException e) {
+                       throw new ArgeoException("Cannot get feature " + featureName
+                                       + " of " + dataStore, e);
+               }
+       }
+
+       public DataStore getDataStore() {
+               return dataStore;
+       }
+
+       public Name getFeatureName() {
+               return featureName;
+       }
+
+}
\ No newline at end of file