From a51599b11a273af7bd7cc23fe0707c6d3ba1eab6 Mon Sep 17 00:00:00 2001
From: Tobias Pietzsch <tobias.pietzsch@gmail.com>
Date: Fri, 13 Feb 2015 01:25:25 +0100
Subject: [PATCH] add "-t" command line option to set thumbnail directory

---
 src/main/java/bdv/server/BigDataServer.java | 26 ++++++++++++++++-----
 src/main/java/bdv/server/CellHandler.java   |  3 +--
 2 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/src/main/java/bdv/server/BigDataServer.java b/src/main/java/bdv/server/BigDataServer.java
index f1b6016..269030f 100644
--- a/src/main/java/bdv/server/BigDataServer.java
+++ b/src/main/java/bdv/server/BigDataServer.java
@@ -40,6 +40,8 @@ import java.util.Map.Entry;
  *                  per line. Each line is formatted as "NAME &lt;TAB&gt; XML".
  *  -p &lt;PORT&gt;       Listening port. (default: 8080)
  *  -s &lt;HOSTNAME&gt;   Hostname of the server.
+ *  -t &lt;DIRECTORY&gt;  Directory to store thumbnails. (new temporary directory
+ *                  by default.)
  *  -m              enable statistics and manager context. EXPERIMENTAL!
  * </pre>
  *
@@ -65,8 +67,9 @@ public class BigDataServer
 		{
 			hostname = "localhost";
 		}
+		final String thumbnailDirectory = null;
 		final boolean enableManagerContext = false;
-		return new Parameters( port, hostname, new HashMap< String, String >(), enableManagerContext );
+		return new Parameters( port, hostname, new HashMap< String, String >(), thumbnailDirectory, enableManagerContext );
 	}
 
 	public static void main( final String[] args ) throws Exception
@@ -133,13 +136,16 @@ public class BigDataServer
 		 */
 		private final Map< String, String > datasetNameToXml;
 
+		private final String thumbnailDirectory;
+
 		private final boolean enableManagerContext;
 
-		Parameters( final int port, final String hostname, final Map< String, String > datasetNameToXml, final boolean enableManagerContext )
+		Parameters( final int port, final String hostname, final Map< String, String > datasetNameToXml, final String thumbnailDirectory, final boolean enableManagerContext )
 		{
 			this.port = port;
 			this.hostname = hostname;
 			this.datasetNameToXml = datasetNameToXml;
+			this.thumbnailDirectory = thumbnailDirectory;
 			this.enableManagerContext = enableManagerContext;
 		}
 
@@ -155,7 +161,7 @@ public class BigDataServer
 
 		public String getThumbnailDirectory()
 		{
-			return null;
+			return thumbnailDirectory;
 		}
 
 		/**
@@ -205,6 +211,12 @@ public class BigDataServer
 				.withArgName( "FILE" )
 				.create( "d" ) );
 
+		options.addOption( OptionBuilder
+				.withDescription( "Directory to store thumbnails. (new temporary directory by default.)" )
+				.hasArg()
+				.withArgName( "DIRECTORY" )
+				.create( "t" ) );
+
 		if ( Constants.ENABLE_EXPERIMENTAL_FEATURES )
 		{
 			options.addOption( OptionBuilder
@@ -222,8 +234,10 @@ public class BigDataServer
 			final int port = Integer.parseInt( portString );
 
 			// Getting server name option
-			final String serverString = cmd.getOptionValue( "s", defaultParameters.getHostname() );
-			final String serverName = serverString;
+			final String serverName = cmd.getOptionValue( "s", defaultParameters.getHostname() );
+
+			// Getting thumbnail directory option
+			final String thumbnailDirectory = cmd.getOptionValue( "t", defaultParameters.getThumbnailDirectory() );
 
 			final HashMap< String, String > datasets = new HashMap< String, String >( defaultParameters.getDatasets() );
 
@@ -280,7 +294,7 @@ public class BigDataServer
 			if ( datasets.isEmpty() )
 				throw new IllegalArgumentException( "Dataset list is empty." );
 
-			return new Parameters( port, serverName, datasets, enableManagerContext );
+			return new Parameters( port, serverName, datasets, thumbnailDirectory, enableManagerContext );
 		}
 		catch ( final ParseException | IllegalArgumentException e )
 		{
diff --git a/src/main/java/bdv/server/CellHandler.java b/src/main/java/bdv/server/CellHandler.java
index 6125bc9..a3fe4df 100644
--- a/src/main/java/bdv/server/CellHandler.java
+++ b/src/main/java/bdv/server/CellHandler.java
@@ -277,8 +277,7 @@ public class CellHandler extends ContextHandler
 	{
 		final String thumbnailFileName = thumbnailsDirectory + "/" + datasetName + ".png";
 		final File thumbnailFile = new File( thumbnailFileName );
-		if ( !thumbnailFile.isFile() ) // do not recreate thumbnail if it
-										// already exists
+		if ( !thumbnailFile.isFile() ) // do not recreate thumbnail if it already exists
 		{
 			final BufferedImage bi = ThumbnailGenerator.makeThumbnail( spimData, baseFilename, Constants.THUMBNAIL_WIDTH, Constants.THUMBNAIL_HEIGHT );
 			try
-- 
GitLab