diff backend/src/main/java/org/dive4elements/river/model/uinfo/VegetationZone.java @ 9401:361de818f76e

Added color fields to the vegetation zone database table and importer, max days field changed from exclusive to inclusive
author mschaefer
date Tue, 14 Aug 2018 14:02:26 +0200
parents 201817aa7b1c
children
line wrap: on
line diff
--- a/backend/src/main/java/org/dive4elements/river/model/uinfo/VegetationZone.java	Tue Aug 14 11:06:00 2018 +0200
+++ b/backend/src/main/java/org/dive4elements/river/model/uinfo/VegetationZone.java	Tue Aug 14 14:02:26 2018 +0200
@@ -11,6 +11,7 @@
 package org.dive4elements.river.model.uinfo;
 
 import java.io.Serializable;
+import java.util.List;
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
@@ -21,6 +22,12 @@
 import javax.persistence.OneToOne;
 import javax.persistence.SequenceGenerator;
 import javax.persistence.Table;
+import javax.persistence.Transient;
+
+import org.dive4elements.river.backend.SessionHolder;
+import org.dive4elements.river.model.River;
+import org.hibernate.Query;
+import org.hibernate.Session;
 
 
 /**
@@ -47,17 +54,27 @@
 
     private Integer max_overflow_days;
 
+    private Integer color_r;
+
+    private Integer color_g;
+
+    private Integer color_b;
 
     /***** CONSTRUCTORS *****/
 
     public VegetationZone() {
     }
 
-    public VegetationZone(final Vegetation vegetation, final VegetationType vegetationType, final Integer min_overflow_days, final Integer max_overflow_days) {
+    public VegetationZone(final Vegetation vegetation, final VegetationType vegetationType, final Integer min_overflow_days, final Integer max_overflow_days,
+            final Integer color_r,
+            final Integer color_g, final Integer color_b) {
         this.vegetation = vegetation;
         this.vegetationType = vegetationType;
         this.min_overflow_days = min_overflow_days;
         this.max_overflow_days = max_overflow_days;
+        this.color_r = color_r;
+        this.color_g = color_g;
+        this.color_b = color_b;
     }
 
 
@@ -112,4 +129,49 @@
     public void setMax_overflow_days(final Integer max_overflow_days) {
         this.max_overflow_days = max_overflow_days;
     }
+
+    @Column(name = "color_r")
+    public Integer getColor_r() {
+        return this.color_r;
+    }
+
+    public void setColor_r(final Integer color_r) {
+        this.color_r = color_r;
+    }
+
+    @Column(name = "color_g")
+    public Integer getColor_g() {
+        return this.color_g;
+    }
+
+    public void setColor_g(final Integer color_g) {
+        this.color_g = color_g;
+    }
+
+    @Column(name = "color_b")
+    public Integer getColor_b() {
+        return this.color_b;
+    }
+
+    public void setColor_b(final Integer color_b) {
+        this.color_b = color_b;
+    }
+
+    @Transient
+    public String getColor() {
+        return String.format("#%02x%02x%02x", getColor_r(), getColor_g(), getColor_b());
+    }
+
+    /**
+     * Selects from the database the vegetation zones of a river
+     */
+    public static List<VegetationZone> getValues(final River river) {
+        final Session session = SessionHolder.HOLDER.get();
+        final Query query = session.createQuery("SELECT v"
+                + " FROM VegetationZone AS v JOIN v.vegetation AS s"
+                + " WHERE (s.river.id=:riverid)"
+                + " ORDER BY v.vegetationType.id");
+        query.setParameter("riverid", river.getId());
+        return query.list();
+    }
 }

http://dive4elements.wald.intevation.org