From d43daf1099355be7472b9ef71b2e533de52a15e6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?K=C3=B6ll=C5=91d=20Csaba?= <kollod.csaba@itk.ppke.hu>
Date: Thu, 5 Jan 2023 17:55:34 +0100
Subject: [PATCH] New feature: GUI

---
 mcc-flow/gui.py | 50 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)
 create mode 100644 mcc-flow/gui.py

diff --git a/mcc-flow/gui.py b/mcc-flow/gui.py
new file mode 100644
index 0000000..8b394af
--- /dev/null
+++ b/mcc-flow/gui.py
@@ -0,0 +1,50 @@
+from tkinter import Tk, filedialog, messagebox
+
+
+def show_message(message, title='BCI'):
+    root = Tk()
+    root.withdraw()
+    messagebox.showinfo(title=title, message=message)
+    root.destroy()
+
+
+def select_files_in_explorer(init_dir='./', message='Select an EEG file!', file_type="EEG files",
+                             ext=".vhdr;*.edf;*.gdf;*.fif;*.xdf", no_file_error=True):
+    root = Tk()
+    root.withdraw()
+    messagebox.showinfo(title='BCI', message=message)
+    extension = ext if ext[0] == '.' else '.' + ext
+    filenames = filedialog.askopenfilenames(title='Select file',
+                                            initialdir=init_dir,
+                                            filetypes=((file_type, "*{}".format(extension)), ("all files", "*.*")))
+    root.destroy()
+    if no_file_error:
+        assert len(filenames) > 0, 'No file were selected...'
+    return filenames
+
+
+def select_folder_in_explorer(message, dialog_title, title='BCI', no_dir_error=True):
+    root = Tk()
+    root.withdraw()
+    messagebox.showinfo(title=title, message=message)
+    base_dir = filedialog.askdirectory(title=dialog_title)
+
+    root.destroy()
+    if no_dir_error:
+        assert len(base_dir) > 0, 'Base directory is not selected. Cannot run program!'
+    return base_dir
+
+
+def select_base_dir():
+    base_dir = select_folder_in_explorer(message='Select base directory, which contains all the database folders:\n'
+                                                 '- BCI_comp\n'
+                                                 '- Cybathlon_pilot\n'
+                                                 '- physionet.org\n'
+                                                 '- TTK',
+                                         dialog_title='Select main database directory')
+    return base_dir
+
+
+if __name__ == '__main__':
+    path = select_base_dir()
+    print(select_files_in_explorer(path))
-- 
GitLab