annotate artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/vegetationzones/VegetationZone.java @ 9260:b570b6fcc052

VegetationZone color added and disabled
author gernotbelger
date Tue, 17 Jul 2018 10:59:27 +0200
parents 431f1c269be5
children e511eb935ccd
rev   line source
9071
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
2 * Software engineering by
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
5 *
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
9 */
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.artifacts.uinfo.vegetationzones;
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
11
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
12 import java.util.ArrayList;
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
13 import java.util.List;
9260
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
14 import java.util.TreeSet;
9071
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
15
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
16 /**
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
17 * @author Domenico Nardi Tironi
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
18 *
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
19 */
9118
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
20 public class VegetationZone implements Comparable<VegetationZone> {
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
21
9260
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
22 // IMMER ABGLEICHEN MIT VegetationZone.class Server und Client
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
23 public static final boolean HAS_COLORS_EDITABLE = false;
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
24
9071
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
25 private static final String TABLE_CELL_SEPARATOR = "TABLE_CELL_SEPARATOR";
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
26 private static final String TABLE_ROW_SEPARATOR = "TABLE_ROW_SEPARATOR";
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
27 private final String zoneName;
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
28 private final int min_day_overflow;
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
29 private final int max_day_overflow;
9260
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
30 private final String hexColor;
9071
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
31
9118
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
32 public static List<VegetationZone> parse(final String zonesRaw) {
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
33 final List<VegetationZone> resultList = new ArrayList<>();
9071
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
34
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
35 final List<String[]> results = new ArrayList<>();
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
36 if (zonesRaw.contains(TABLE_ROW_SEPARATOR)) {
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
37 final String[] rows = zonesRaw.split(TABLE_ROW_SEPARATOR);
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
38 for (final String row : rows) {
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
39 if (row.contains(TABLE_CELL_SEPARATOR)) {
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
40 final String[] result = row.split(TABLE_CELL_SEPARATOR);
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
41 results.add(result);
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
42 }
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
43 }
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
44 }
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
45 for (final String[] zone : results) {
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
46
9260
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
47 final VegetationZone helper = new VegetationZone(zone[0], Integer.valueOf(zone[1]), Integer.valueOf(zone[2]), zone[3]);
9071
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
48 resultList.add(helper);
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
49 }
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
50
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
51 return resultList;
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
52 }
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
53
9260
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
54 public static VegetationZone createFromTableEntry(final String zone, final String min_day_overflow, final String max_day_overflow, final String hexColor) {
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
55 return new VegetationZone(zone, Integer.valueOf(min_day_overflow), Integer.valueOf(max_day_overflow), hexColor); // Error-Handling?
9118
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
56 }
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
57
9260
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
58 private VegetationZone(final String zone, final Integer min_day_overflow, final Integer max_day_overflow, final String hexColor) {
9071
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
59 this.zoneName = zone;
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
60 this.min_day_overflow = min_day_overflow;
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
61 this.max_day_overflow = max_day_overflow;
9260
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
62 this.hexColor = hexColor;
9071
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
63 }
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
64
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
65 public int getMax_day_overflow() {
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
66 return this.max_day_overflow;
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
67 }
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
68
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
69 public String getZoneName() {
9260
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
70 if (this.zoneName == null || this.zoneName.equals("")) {
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
71 return "---";
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
72 }
9071
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
73 return this.zoneName;
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
74 }
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
75
9260
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
76 public String getHexColor() {
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
77 try {
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
78 final int test = Integer.decode(this.hexColor);
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
79 return this.hexColor;
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
80 }
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
81 catch (final NumberFormatException e) {
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
82 return "#ffffff";
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
83 }
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
84 }
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
85
9071
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
86 public int getMin_day_overflow() {
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
87 return this.min_day_overflow;
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
88 }
9118
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
89
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
90 public static final List<VegetationZone> getStandardList() {
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
91
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
92 final List<VegetationZone> list = new ArrayList<>();
9260
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
93 list.add(new VegetationZone("Zonaler Wald", 0, 5, "#336600"));
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
94 list.add(new VegetationZone("Hartholzaue, trocken", 6, 40, "#00cc00"));
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
95 list.add(new VegetationZone("Hartholzaue, feucht", 41, 80, "#66ff33"));
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
96 list.add(new VegetationZone("Silberweidenwald", 81, 140, "#008080"));
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
97 list.add(new VegetationZone("Weidengebüsch", 141, 200, "#33cccc"));
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
98 list.add(new VegetationZone("Uferröhricht", 201, 260, "#ffa8ff"));
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
99 list.add(new VegetationZone("Uferpioniere", 261, 320, "#ff0000"));
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
100 list.add(new VegetationZone("Vegetationslos", 321, 364, "#b2b2b2"));
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
101 list.add(new VegetationZone("Wasserfläche", 365, 365, "#0066ff"));
9118
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
102
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
103 return list;
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
104 }
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
105
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
106 public static final String parseListToDataString(final List<VegetationZone> list) {
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
107
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
108 java.util.Collections.sort(list);
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
109 final StringBuilder builder = new StringBuilder();
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
110 for (final VegetationZone zone : list) {
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
111 builder.append(zone.getZoneName());
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
112 builder.append(TABLE_CELL_SEPARATOR);
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
113 builder.append(zone.getMin_day_overflow());
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
114 builder.append(TABLE_CELL_SEPARATOR);
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
115 builder.append(zone.getMax_day_overflow());
9260
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
116 builder.append(TABLE_CELL_SEPARATOR);
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
117 builder.append(zone.getHexColor());
9118
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
118 builder.append(TABLE_ROW_SEPARATOR);
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
119 }
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
120 return builder.toString();
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
121
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
122 }
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
123
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
124 @Override
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
125 public int compareTo(final VegetationZone o) {
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
126 final int basicCompare = Integer.valueOf(this.getMin_day_overflow()).compareTo(o.getMin_day_overflow());
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
127 if (basicCompare == 0)
9260
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
128 return Integer.valueOf(this.getMax_day_overflow()).compareTo(o.getMax_day_overflow()); // wenn min==min && max==max, alphabetisch sortieren?
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
129
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
130 if (basicCompare == 0) {
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
131 return 1; // for treeSet
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
132 }
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
133
9118
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
134 return basicCompare;
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
135 }
431f1c269be5 Veg-Zone Table improved, State change data recovery;
gernotbelger
parents: 9071
diff changeset
136
9260
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
137 public static final boolean zonesAreOverlapping(final List<VegetationZone> list) {
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
138 for (final VegetationZone zone : list) {
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
139 for (final VegetationZone zoneOther : list) {
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
140 if (zone != zoneOther) {
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
141 final boolean overlaps = zone.overlaps(zoneOther);
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
142 if (overlaps) {
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
143 return overlaps; // cancel. only one zone has to overlap
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
144 }
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
145 }
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
146 }
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
147 }
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
148
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
149 return false;
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
150 }
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
151
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
152 public static final boolean hasGaps(final List<VegetationZone> list, final int lower, final int upper) {
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
153
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
154 if ((upper - lower) == 0)
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
155 return true;
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
156
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
157 final TreeSet<VegetationZone> treeList = new TreeSet<>();
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
158 treeList.addAll(list);
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
159 int lowerCompare = lower;
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
160 for (final VegetationZone zone : treeList) {
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
161 if (zone.getLowerFromTo() > (lowerCompare + 1)) { // nicht inklusiv
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
162 return true;
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
163 }
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
164 lowerCompare = zone.getUpperFromTo();
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
165 }
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
166 if ((lowerCompare) < upper)
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
167 return true; // am Ende nicht geschlossen
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
168
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
169 return false;
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
170 }
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
171
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
172 private boolean overlaps(final VegetationZone otherZone) {
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
173 final int otherLower = otherZone.getLowerFromTo();
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
174 final int otherUpper = otherZone.getUpperFromTo();
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
175
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
176 final int upper = getUpperFromTo();
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
177 final int lower = getLowerFromTo();
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
178 final int otherSchwerpunkt = (otherLower + otherUpper) / 2;
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
179 if ((otherUpper <= upper && otherUpper >= lower)) {
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
180 return true;
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
181 } else if (otherLower >= lower && otherLower <= upper) {
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
182 return true;
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
183 } else if (otherSchwerpunkt >= (lower) && otherSchwerpunkt <= (upper)) {
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
184 return true;
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
185 }
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
186 return false;
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
187 }
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
188
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
189 public Integer getLowerFromTo() {
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
190 return this.min_day_overflow < this.max_day_overflow ? this.min_day_overflow : this.max_day_overflow; // Math. is forbidden :-(
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
191 }
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
192
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
193 public Integer getUpperFromTo() {
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
194 return this.min_day_overflow > this.max_day_overflow ? this.min_day_overflow : this.max_day_overflow;// Math. is forbidden :-(
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
195 }
b570b6fcc052 VegetationZone color added and disabled
gernotbelger
parents: 9118
diff changeset
196
9071
a561b882436d create module bundu (Betrieb & Unterhaltung)
gernotbelger
parents:
diff changeset
197 }

http://dive4elements.wald.intevation.org