Remove the dependency to ViewModule
[master-thesis.git] / Parasitemia / ParasitemiaUI / Utils.fs
index 9f51436..927e441 100644 (file)
@@ -16,18 +16,15 @@ let percentText (nbTotal : int, nb : int) : string =
         let percent = 100. * (float nb) / (float nbTotal)
         sprintf "%.1f %% (%d / %d)" percent nb nbTotal
 
-let roamingDir =
-    Path.Combine (System.Environment.GetFolderPath (System.Environment.SpecialFolder.ApplicationData), "Parasitemia")
-
 let predefinedPPIFilename = "predefined-ppi.json"
-let predefinedPPIFilepath = Path.Combine (roamingDir, predefinedPPIFilename)
+let predefinedPPIFilepath = Path.Combine (Constants.USER_DIRECTORY, predefinedPPIFilename)
 
 let sensorSizesFilename = "sensor-sizes.json"
-let sensorSizesFilepath = Path.Combine (roamingDir, sensorSizesFilename)
+let sensorSizesFilepath = Path.Combine (Constants.USER_DIRECTORY, sensorSizesFilename)
 
 let private savePredefinedPPIToFile (predefinedPPI : PredefinedPPI list) =
     try
-        Directory.CreateDirectory roamingDir |> ignore
+        Directory.CreateDirectory Constants.USER_DIRECTORY |> ignore
         use file = new StreamWriter (predefinedPPIFilepath)
         file.Write (JsonConvert.SerializeObject (predefinedPPI, JsonSerializerSettings (Formatting = Formatting.Indented)))
     with
@@ -36,7 +33,7 @@ let private savePredefinedPPIToFile (predefinedPPI : PredefinedPPI list) =
 
 let private saveSensorSizesToFile (sensorSizes : SensorSize list) =
     try
-        Directory.CreateDirectory roamingDir |> ignore
+        Directory.CreateDirectory Constants.USER_DIRECTORY |> ignore
         use file = new StreamWriter (sensorSizesFilepath)
         file.Write (JsonConvert.SerializeObject (sensorSizes, JsonSerializerSettings (Formatting = Formatting.Indented)))
     with
@@ -101,9 +98,23 @@ let argsHelp =
     "    --folder <folder> : an input folder containing images to analyze\n" +
     "    --file <file> : an image file to be analyzed\n" +
     "    --output <folder> : a folder to put the results\n" +
-    "    --debug : output more information like intermediate images (it takes more CPU and memory)\n" +
+    "    --debug : output more information like intermediate images (it takes more CPU and memory) and write debug information to the log files\n" +
 
     "Interactive mode:\n" +
     (sprintf "  %s [<document-file>] [--debug]\n" programName) +
     "    <document-file> : a PIAZ file to automatically open at startup\n" +
-    "    --debug : output information like intermediate images in the current directory (it takes more CPU and memory)"
\ No newline at end of file
+    "    --debug : output information like intermediate images in the current directory (it takes more CPU and memory)"
+
+open System
+open System.Windows
+
+type FunCommand (execute : obj -> unit, canExecute : obj -> bool) =
+    let canExecuteChanged = Event<EventHandler, EventArgs> ()
+
+    interface Input.ICommand with
+        [<CLIEvent>]
+        member this.CanExecuteChanged = canExecuteChanged.Publish
+
+        member this.CanExecute (param : obj) = canExecute param
+
+        member this.Execute (param : obj) = execute param
\ No newline at end of file