From 2dc4ff044f15a0d36bb5b0ccbca49454c9a7f367 Mon Sep 17 00:00:00 2001 From: oleting Date: Sun, 3 Jan 2021 19:46:44 +0100 Subject: [PATCH] + outsourcing --- .vscode/launch.json | 2 +- gui/gui.py | 119 ++------------------------------------ gui/new_window_layouts.py | 118 ++++++++++++++++++++++++++++++++++++- 3 files changed, 122 insertions(+), 117 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index e80f071..1ded7e8 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -8,7 +8,7 @@ "name": "Python: Aktuelle Datei", "type": "python", "request": "launch", - "program": "debug.py", + "program": "run.py", "console": "integratedTerminal" } ] diff --git a/gui/gui.py b/gui/gui.py index 5d637d0..3cfba69 100644 --- a/gui/gui.py +++ b/gui/gui.py @@ -1,5 +1,5 @@ from gui.utils import nassi, output -from gui.new_window_layouts import layout_popup +from gui.new_window_layouts import Layout_popup, Layout_std from errors.custom import JavaSyntaxError, ScopeNotFoundException, InterpreterException, NoPathError from interpreter.NassiShneidermann import OB @@ -28,119 +28,10 @@ class Gui: self.get_debug_mode(self.debug_mode) sg.theme(theme) - logging.debug(('Theme = ' + theme)) - - - - toolbar = [ - [ - sg.Button(button_text='Create Image', key='-CREATE-'), - sg.Button(button_text='Credits', key='-CREDITS-'), - # * fun feature - sg.Button(button_text='Donate', key='-DONATE-'), - ] - ] - - input_column = [ - [ - sg.Text('Java File'), - sg.In(size=(25, 1), enable_events=True, key="-JAVA FOLDER-"), - sg.FileBrowse(file_types=(('Java-File', '*.java'), ('ALL Files', - '*.*')), key='-JAVA FILE-'), - ], - [ - sg.Text('Output Folder'), - sg.In(size=(25, 1), enable_events=True, key="-OUTPUT FOLDER-"), - sg.FolderBrowse(), - ], - [ - sg.Text('Output name'), - sg.In(size=(25, 1), enable_events=True, key='-OUTPUT NAME-'), - #sg.Button('Confirm', key='-SET OUTPUT NAME-'), - ], - [ - sg.HSeparator(), - ], - [ - sg.Text('Optional: choose custom font.'), - ], - [ - sg.Text('TTF File'), - sg.In(size=(25, 1), enable_events=True, key="-TTF FOLDER-"), - sg.FileBrowse(file_types=(('TTF-File', '*.ttf'), ('ALL Files', - '*.*')), key='-TTF FILE-'), - ], - [ - sg.Button(button_text='Add costum types', key='-TYPES-') - ], - [ - # modifier - sg.Button(button_text='Add costum modifier', key='-MODIFIER-') - # comments - ], - [ - sg.Button(button_text='Add costum comments', key='-COMMENTS-') - # comments - ], - - ] - - file_list_column = [ - [ - sg.Text('Output folder'), - - sg.Button(button_text='Refresh', key='-REFRESH-') - ], - [ - sg.Listbox( - values=[], enable_events=True, size=(40, 20), key="-OUTPUT FILE LIST-", - ) - ], - ] - - diagramm_viewer_column = [ - [sg.Text("Choose your code for preview. ", auto_size_text=True)], - [sg.Text(key="-TOUT-", auto_size_text=True)], - [sg.Image(key='-IMAGE-')], - ] - - execute_column = [ - [sg.Button(button_text='Create Image', key='-CREATE-')], - [sg.Button(button_text='Credits', key='-CREDITS-')], - # * fun feature - [sg.Button(button_text='Donate', key='-DONATE-')], - ] - logging.debug('set buttons_column GUI') - - layout = [ - [ - sg.Column(input_column), - sg.VSeparator(), - #sg.Column(execute_column), - sg.VSeparator(), - sg.Column(file_list_column), - sg.VSeparator(), - sg.VSeparator(), - sg.Column(diagramm_viewer_column), - ] - ] - - layout_with_toolbar = [ - [ - sg.Column(toolbar) - ], - [ - sg.HSeparator(), - ], - [ - sg.Column(layout) - ] - ] - - logging.debug('init layout GUI') - - window = sg.Window('Nassi Viewer', layout_with_toolbar, resizable=False) + layout_s = Layout_std(theme=theme) + layoutStd = layout_s.layout() + window = sg.Window('Nassi Viewer', layoutStd, resizable=False) return window @@ -173,7 +64,7 @@ class Gui: logging.debug( ('Try create Image with values = ' + str(values))) - layout_p = layout_popup() + layout_p = Layout_popup() popup_3_choice = sg.Window( title='', no_titlebar=True, layout=layout_p.layout, resizable=False) event_popup, values_popup = popup_3_choice.read() diff --git a/gui/new_window_layouts.py b/gui/new_window_layouts.py index e3f88a2..653d6a9 100644 --- a/gui/new_window_layouts.py +++ b/gui/new_window_layouts.py @@ -1,6 +1,119 @@ import PySimpleGUI as sg -class layout_popup: +class Layout_std: + + def __init__(self, theme: str): + self.theme = theme + + def layout(self): + sg.theme(self.theme) + toolbar = [ + [ + sg.Button(button_text='Create Image', key='-CREATE-'), + sg.Button(button_text='Credits', key='-CREDITS-'), + # * fun feature + sg.Button(button_text='Donate', key='-DONATE-'), + ] + ] + + input_column = [ + [ + sg.Text('Java File'), + sg.In(size=(25, 1), enable_events=True, key="-JAVA FOLDER-"), + sg.FileBrowse(file_types=(('Java-File', '*.java'), ('ALL Files', + '*.*')), key='-JAVA FILE-'), + ], + [ + sg.Text('Output Folder'), + sg.In(size=(25, 1), enable_events=True, key="-OUTPUT FOLDER-"), + sg.FolderBrowse(), + ], + [ + sg.Text('Output name'), + sg.In(size=(25, 1), enable_events=True, key='-OUTPUT NAME-'), + #sg.Button('Confirm', key='-SET OUTPUT NAME-'), + ], + [ + sg.HSeparator(), + ], + [ + sg.Text('Optional: choose custom font.'), + ], + [ + sg.Text('TTF File'), + sg.In(size=(25, 1), enable_events=True, key="-TTF FOLDER-"), + sg.FileBrowse(file_types=(('TTF-File', '*.ttf'), ('ALL Files', + '*.*')), key='-TTF FILE-'), + ], + [ + sg.Button(button_text='Add costum types', key='-TYPES-') + ], + [ + # modifier + sg.Button(button_text='Add costum modifier', key='-MODIFIER-') + # comments + ], + [ + sg.Button(button_text='Add costum comments', key='-COMMENTS-') + # comments + ], + + ] + + file_list_column = [ + [ + sg.Text('Output folder'), + + sg.Button(button_text='Refresh', key='-REFRESH-') + ], + [ + sg.Listbox( + values=[], enable_events=True, size=(40, 20), key="-OUTPUT FILE LIST-", + ) + ], + ] + + diagramm_viewer_column = [ + [sg.Text("Choose your code for preview. ", auto_size_text=True)], + [sg.Text(key="-TOUT-", auto_size_text=True)], + [sg.Image(key='-IMAGE-')], + ] + + execute_column = [ + [sg.Button(button_text='Create Image', key='-CREATE-')], + [sg.Button(button_text='Credits', key='-CREDITS-')], + # * fun feature + [sg.Button(button_text='Donate', key='-DONATE-')], + ] + + layout = [ + [ + sg.Column(input_column), + sg.VSeparator(), + #sg.Column(execute_column), + sg.VSeparator(), + sg.Column(file_list_column), + sg.VSeparator(), + sg.VSeparator(), + sg.Column(diagramm_viewer_column), + ] + ] + + layout_with_toolbar = [ + [ + sg.Column(toolbar) + ], + [ + sg.HSeparator(), + ], + [ + sg.Column(layout) + ] + ] + + return layout_with_toolbar + +class Layout_popup: def __init__(self): text_column = [ [ @@ -20,4 +133,5 @@ class layout_popup: sg.Column(text_column), sg.Column(choices), ] - ] \ No newline at end of file + ] +