Remove the dependency to ViewModule
authorGreg Burri <greg.burri@gmail.com>
Fri, 2 Apr 2021 20:10:48 +0000 (22:10 +0200)
committerGreg Burri <greg.burri@gmail.com>
Fri, 2 Apr 2021 20:10:48 +0000 (22:10 +0200)
Parasitemia/ParasitemiaUI/GUI.fs
Parasitemia/ParasitemiaUI/ParasitemiaUI.fsproj
Parasitemia/ParasitemiaUI/Utils.fs
Parasitemia/Tests/ParasitemiaCore.Tests/ParasitemiaCore.Tests.fsproj

index 69ae1f9..3b67894 100644 (file)
@@ -590,7 +590,7 @@ let run (defaultConfig : Config) (fileToOpen : string option) =
     // Save.
     win.InputBindings.Add (
         Input.KeyBinding (
     // Save.
     win.InputBindings.Add (
         Input.KeyBinding (
-            ViewModule.FunCommand ((fun obj -> saveCurrentDocument ()), (fun obj -> true)),
+            Utils.FunCommand ((fun obj -> saveCurrentDocument ()), (fun obj -> true)),
             Input.KeyGesture (Input.Key.S, Input.ModifierKeys.Control)
         )
     ) |> ignore
             Input.KeyGesture (Input.Key.S, Input.ModifierKeys.Control)
         )
     ) |> ignore
@@ -598,7 +598,7 @@ let run (defaultConfig : Config) (fileToOpen : string option) =
     // Save as.
     win.InputBindings.Add (
         Input.KeyBinding (
     // Save as.
     win.InputBindings.Add (
         Input.KeyBinding (
-            ViewModule.FunCommand ((fun obj -> saveCurrentDocumentAsNewFile ()), (fun obj -> true)),
+            Utils.FunCommand ((fun obj -> saveCurrentDocumentAsNewFile ()), (fun obj -> true)),
             Input.KeyGesture (Input.Key.S, Input.ModifierKeys.Control ||| Input.ModifierKeys.Shift)
         )
     ) |> ignore
             Input.KeyGesture (Input.Key.S, Input.ModifierKeys.Control ||| Input.ModifierKeys.Shift)
         )
     ) |> ignore
@@ -606,7 +606,7 @@ let run (defaultConfig : Config) (fileToOpen : string option) =
     // Open.
     win.InputBindings.Add (
         Input.KeyBinding (
     // Open.
     win.InputBindings.Add (
         Input.KeyBinding (
-            ViewModule.FunCommand ((fun obj -> askLoadFile ()), (fun obj -> true)),
+            Utils.FunCommand ((fun obj -> askLoadFile ()), (fun obj -> true)),
             Input.KeyGesture (Input.Key.O, Input.ModifierKeys.Control)
         )
     ) |> ignore
             Input.KeyGesture (Input.Key.O, Input.ModifierKeys.Control)
         )
     ) |> ignore
@@ -614,7 +614,7 @@ let run (defaultConfig : Config) (fileToOpen : string option) =
     // New file.
     win.InputBindings.Add (
         Input.KeyBinding (
     // New file.
     win.InputBindings.Add (
         Input.KeyBinding (
-            ViewModule.FunCommand ((fun obj -> newFile ()), (fun obj -> true)),
+            Utils.FunCommand ((fun obj -> newFile ()), (fun obj -> true)),
             Input.KeyGesture (Input.Key.N, Input.ModifierKeys.Control)
         )
     ) |> ignore
             Input.KeyGesture (Input.Key.N, Input.ModifierKeys.Control)
         )
     ) |> ignore
@@ -622,7 +622,7 @@ let run (defaultConfig : Config) (fileToOpen : string option) =
     // Export results.
     win.InputBindings.Add (
         Input.KeyBinding (
     // Export results.
     win.InputBindings.Add (
         Input.KeyBinding (
-            ViewModule.FunCommand ((fun obj -> exportResults ()), (fun obj -> true)),
+            Utils.FunCommand ((fun obj -> exportResults ()), (fun obj -> true)),
             Input.KeyGesture (Input.Key.E, Input.ModifierKeys.Control)
         )
     ) |> ignore
             Input.KeyGesture (Input.Key.E, Input.ModifierKeys.Control)
         )
     ) |> ignore
@@ -630,7 +630,7 @@ let run (defaultConfig : Config) (fileToOpen : string option) =
     // Import an image.
     win.InputBindings.Add (
         Input.KeyBinding (
     // Import an image.
     win.InputBindings.Add (
         Input.KeyBinding (
-            ViewModule.FunCommand ((fun obj -> importImage ()), (fun obj -> true)),
+            Utils.FunCommand ((fun obj -> importImage ()), (fun obj -> true)),
             Input.KeyGesture (Input.Key.A, Input.ModifierKeys.Control)
         )
     ) |> ignore
             Input.KeyGesture (Input.Key.A, Input.ModifierKeys.Control)
         )
     ) |> ignore
@@ -638,7 +638,7 @@ let run (defaultConfig : Config) (fileToOpen : string option) =
     // Show analysis dialog.
     win.InputBindings.Add (
         Input.KeyBinding (
     // Show analysis dialog.
     win.InputBindings.Add (
         Input.KeyBinding (
-            ViewModule.FunCommand ((fun obj -> showAnalysisWindow ()), (fun obj -> state.SourceImages.Count () > 0)),
+            Utils.FunCommand ((fun obj -> showAnalysisWindow ()), (fun obj -> state.SourceImages.Count () > 0)),
             Input.KeyGesture (Input.Key.Y, Input.ModifierKeys.Control)
         )
     ) |> ignore
             Input.KeyGesture (Input.Key.Y, Input.ModifierKeys.Control)
         )
     ) |> ignore
@@ -646,7 +646,7 @@ let run (defaultConfig : Config) (fileToOpen : string option) =
     // Toggle RBC highlight.
     win.InputBindings.Add (
         Input.KeyBinding (
     // Toggle RBC highlight.
     win.InputBindings.Add (
         Input.KeyBinding (
-            ViewModule.FunCommand (
+            Utils.FunCommand (
                 (
                     fun obj ->
                         win.menuHightlightRBC.IsChecked <- not win.menuHightlightRBC.IsChecked
                 (
                     fun obj ->
                         win.menuHightlightRBC.IsChecked <- not win.menuHightlightRBC.IsChecked
index 70626b0..11d01bb 100644 (file)
@@ -44,7 +44,6 @@
     <PackageReference Include="Emgu.CV" Version="4.5.1.4349" />
     <PackageReference Include="Emgu.CV.Bitmap" Version="4.5.1.4349" />
     <PackageReference Include="Emgu.CV.runtime.windows" Version="4.5.1.4349" />
     <PackageReference Include="Emgu.CV" Version="4.5.1.4349" />
     <PackageReference Include="Emgu.CV.Bitmap" Version="4.5.1.4349" />
     <PackageReference Include="Emgu.CV.runtime.windows" Version="4.5.1.4349" />
-    <PackageReference Include="FSharp.ViewModule.Core" Version="1.0.7" />
     <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
     <PackageReference Include="System.Drawing.Common" Version="5.0.2" />
   </ItemGroup>
     <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
     <PackageReference Include="System.Drawing.Common" Version="5.0.2" />
   </ItemGroup>
index 4dcb7d4..927e441 100644 (file)
@@ -103,4 +103,18 @@ let argsHelp =
     "Interactive mode:\n" +
     (sprintf "  %s [<document-file>] [--debug]\n" programName) +
     "    <document-file> : a PIAZ file to automatically open at startup\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
index 45f05bb..ef3112b 100644 (file)
@@ -12,7 +12,7 @@
   </ItemGroup>
 
   <ItemGroup>
   </ItemGroup>
 
   <ItemGroup>
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.9.1" />
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.9.4" />
     <PackageReference Include="Unquote" Version="5.0.0" />
     <PackageReference Include="xunit" Version="2.4.1" />
     <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
     <PackageReference Include="Unquote" Version="5.0.0" />
     <PackageReference Include="xunit" Version="2.4.1" />
     <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">