From c42494702aa84d79105e86167531a20f61be9826 Mon Sep 17 00:00:00 2001
From: "patrick.lambert" <patrick.mh.lambert@inrae.fr>
Date: Sat, 12 Sep 2020 16:21:38 +0200
Subject: [PATCH] fill only river and inshore basins when presence

---
 .../RIOBasinNetworkObserverPresence.java      | 103 ++++++++----------
 1 file changed, 48 insertions(+), 55 deletions(-)

diff --git a/src/main/java/environment/RIOBasinNetworkObserverPresence.java b/src/main/java/environment/RIOBasinNetworkObserverPresence.java
index 04b51f1..f30f81c 100644
--- a/src/main/java/environment/RIOBasinNetworkObserverPresence.java
+++ b/src/main/java/environment/RIOBasinNetworkObserverPresence.java
@@ -77,48 +77,47 @@ public class RIOBasinNetworkObserverPresence extends ObserverListener implements
 	public void init(Pilot pilot) {
 		this.pilot = pilot;
 
-		if (this.colorScaleEnum == null) {
+		if (this.colorScaleEnum == null)
 			this.colorScaleEnum = ColorScaleEnum.RedsScale;
 
-			try {
-				// open the file
-				FileReader reader = new FileReader(presenceFileName);
-				// Parsing the file
-				Scanner scanner = new Scanner(reader);
-				scanner.useLocale(Locale.ENGLISH); // to have a point as decimal
-				// separator !!!
-				// scanner.useDelimiter(Pattern.compile("[;,\r\n]"));
-
-				// read the headers
-				String[] headers = scanner.nextLine().split(",");
-				presences = new TreeMap<String, Map<String, Integer>>();
-				for (int i = 2; i < headers.length; i++) {
-					presences.put(headers[i], new TreeMap<String, Integer>());
-				}
+		try {
+			// open the file
+			FileReader reader = new FileReader(presenceFileName);
+			// Parsing the file
+			Scanner scanner = new Scanner(reader);
+			scanner.useLocale(Locale.ENGLISH); // to have a point as decimal
+			// separator !!!
+			// scanner.useDelimiter(Pattern.compile("[;,\r\n]"));
+
+			// read the headers
+			String[] headers = scanner.nextLine().split(",");
+			presences = new TreeMap<String, Map<String, Integer>>();
+			for (int i = 2; i < headers.length; i++) {
+				presences.put(headers[i], new TreeMap<String, Integer>());
+			}
 
-				// read the lines
-				while (scanner.hasNextLine()) {
-					String[] fields = scanner.nextLine().split(",");
-					// System.out.println(Arrays.toString(fields));
+			// read the lines
+			while (scanner.hasNextLine()) {
+				String[] fields = scanner.nextLine().split(",");
+				// System.out.println(Arrays.toString(fields));
 
-					for (int j = 2; j < headers.length; j++) {
-						if (j >= fields.length)
+				for (int j = 2; j < headers.length; j++) {
+					if (j >= fields.length)
+						presences.get(headers[j]).put(fields[1], -1);
+					else {
+						if (fields[j].compareTo("") == 0)
 							presences.get(headers[j]).put(fields[1], -1);
-						else {
-							if (fields[j].compareTo("") == 0)
-								presences.get(headers[j]).put(fields[1], -1);
-							else
-								presences.get(headers[j]).put(fields[1], Integer.valueOf(fields[j]));
-						}
+						else
+							presences.get(headers[j]).put(fields[1], Integer.valueOf(fields[j]));
 					}
 				}
-				// reader.close();
-				// scanner.close();
-			} catch (Exception e) {
-				e.printStackTrace();
 			}
-
+			reader.close();
+			scanner.close();
+		} catch (Exception e) {
+			e.printStackTrace();
 		}
+
 		// the Jpanal that holds all the components to be displayed
 		display = new JPanel(new BorderLayout());
 
@@ -138,7 +137,6 @@ public class RIOBasinNetworkObserverPresence extends ObserverListener implements
 
 		// load basin to a have access to the shape
 		bn = (RIOBasinNetworkWithContinent) pilot.getAquaticWorld().getEnvironment();
-
 	}
 
 
@@ -265,8 +263,6 @@ public class RIOBasinNetworkObserverPresence extends ObserverListener implements
 			// AffineTransform af = new AffineTransform(scaling, 0., 0., -scaling, -minX * scaling, H + minY * scaling);
 			AffineTransform af = new AffineTransform(scaling, 0., 0., -scaling, -minX * scaling, maxY * scaling);
 
-			// System.out.println(af.toString());
-
 			Graphics2D g2d = (Graphics2D) g;
 			g2d.setStroke(new BasicStroke(2)); // define the line
 
@@ -315,25 +311,22 @@ public class RIOBasinNetworkObserverPresence extends ObserverListener implements
 				}
 				g2d.draw(displayShape);
 
-				int presence = -1;
-				if (presences.get(period).get(basinName) != null)
-					presence = presences.get(period).get(basinName);
-				else
-					System.out.println(basinName + " is not present in the presence file");
-
-				/*
-				 * if (presence == 1) { g.setColor(Color.RED); } else if (presence == 0) { g.setColor(Color.WHITE); }
-				 * else g.setColor(Color.LIGHT_GRAY);
-				 */
-
-				if (presence > 0)
-					g.setColor(colorScaleEnum.getScale().getColor(presence));
-				else if (presence == 0)
-					g.setColor(Color.WHITE);
-				else
-					g.setColor(Color.GRAY);
-
-				g2d.fill(displayShape);
+				if (basin instanceof RiverBasin | basin instanceof InshoreBasin) {
+					int presence = -1;
+					if (presences.get(period).get(basinName) != null)
+						presence = presences.get(period).get(basinName);
+					else
+						System.out.println(basinName + " is not present in the presence file");
+
+					if (presence > 0)
+						g.setColor(colorScaleEnum.getScale().getColor(presence));
+					else if (presence == 0)
+						g.setColor(Color.WHITE);
+					else
+						g.setColor(Color.GRAY);
+
+					g2d.fill(displayShape);
+				}
 			}
 		}
 	}
-- 
GitLab