Beispiel #1
0
 /// <summary>
 /// Contructor that emit the event
 /// </summary>
 /// <param name="window"></param>
 public DisplayModel(RetagWindow window)
 {
     win = window;
     EmitChanged(nameof(TrainingFileCount));
 }
Beispiel #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("DRAL V." + Assembly.GetEntryAssembly().GetName().Version);
            if (args.Contains("--help") || args.Contains("-h"))
            {
                Console.WriteLine("./DRAL [ --help | -h ] [--new | -n | --retag | -r | --show | -s ] [ --no-window | --cli ] [ --fix-dataset | --fix | -f ]");
                Console.WriteLine("     -f, --fix, --fix-dataset");
                Console.WriteLine("         Run the fix dataset command");
                Console.WriteLine("     -h, --help");
                Console.WriteLine("         Display this help");
                Console.WriteLine("     -n, --new");
                Console.WriteLine("         Start in tagger mode");
                Console.WriteLine("     --no-window, --cli ");
                Console.WriteLine("         Run in command line mode");
                Console.WriteLine("     -r, --retag");
                Console.WriteLine("         Start in retagger mode");
                Console.WriteLine("     -s, --show");
                Console.WriteLine("         Start in display mode");
                Console.WriteLine("         --in {file}, -i {file}");
                Console.WriteLine("             [mandatory]Input file for the display, imply --cli");
                Console.WriteLine("         --out {file}, -o {file}");
                Console.WriteLine("             Output file for the display, imply --cli");
                Console.WriteLine("     --skip {n}");
                Console.WriteLine("         Skip 'n' file(s) while fixing");
                Console.WriteLine("     --take {n}");
                Console.WriteLine("         Take 'n' file(s) while fixing");
                Console.WriteLine("     --verbose, -v");
                Console.WriteLine("         Activate verbose mode");

                return;
            }
            if (args.Contains("-v") || args.Contains("--verbose"))
            {
                verbose = true;
            }
            try
            {
                Gtk.Application.Init();
            }
            catch
            {
                Console.WriteLine("Installing Gtk libraries for current user");
                WebClient wc = new WebClient();
                wc.DownloadFile("https://zergling.moyskleytech.com/dataset/DRAL/Gtk.zip", "Gtk.zip");
                ZipFile.ExtractToDirectory("Gtk.zip", Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData));
                System.IO.File.Delete("Gtk.zip");
                Console.WriteLine("Please run DRAL again.");
                return;
            }

            if (args.Contains("--out"))
            {
                var outIdx = Array.IndexOf(args, "--out");
                file_out = args[outIdx + 1];
            }
            if (args.Contains("-o"))
            {
                var outIdx = Array.IndexOf(args, "-o");
                file_out = args[outIdx + 1];
            }
            if (args.Contains("--in"))
            {
                var inIdx = Array.IndexOf(args, "--in");
                file_in = args[inIdx + 1];
            }
            if (args.Contains("-i"))
            {
                var inIdx = Array.IndexOf(args, "-i");
                file_in = args[inIdx + 1];
            }
            if (args.Contains("--skip"))
            {
                var skipIdx = Array.IndexOf(args, "--skip");
                skip = int.Parse(args[skipIdx + 1]);
            }
            if (args.Contains("--take"))
            {
                var takeIdx = Array.IndexOf(args, "--take");
                take = int.Parse(args[takeIdx + 1]);
            }

            DRALWindow window = new ErrorWindow();

            if (args.Contains("--no-window") || args.Contains("--cli") || ((args.Contains("-s") || args.Contains("--show")) && (args.Contains("--out") || args.Contains("-o"))))
            {
                withWindow = false;
            }
            if (args.Contains("--new") || args.Contains("-n"))
            {
                window = new NewTagWindow();
            }
            if (args.Contains("--show") || args.Contains("-s"))
            {
                window = new ShowWindow();
            }
            if (args.Contains("--convert") || args.Contains("-c"))
            {
                window = new ConvertWindow();
            }
            if (args.Contains("--retag") || args.Contains("-r") || window == null)
            {
                window = new RetagWindow();
            }
            if (withWindow && window is ErrorWindow)
            {
                Console.Error.WriteLine("missing action argument");
                return;
            }


            if (withWindow)
            {
                window.Show();
            }
            if (args.Contains("--fix") || args.Contains("-f") || args.Contains("--fix-dataset") ||
                (window is ShowWindow && (args.Contains("--out") || args.Contains("-o"))))
            {
                autoClose = true;
                _         = Task.Run(async() =>
                {
                    await Task.Delay(500);
                    await window.Fix();
                    await Task.Delay(3000);
                    Application.Quit();
                });
                Application.Run();
            }
            if (withWindow && !autoClose)
            {
                Application.Run();
            }
        }