import PySimpleGUI as sg
import csv
import pandas as pd
import helperFunctions as HF

def secViewWin(defaultFont):

	#Printing options for the Pandas dataframe
	pd.set_option('display.min_rows', 20)
	pd.set_option('display.expand_frame_repr', False)
	pd.set_option('max_colwidth', 30)

	#Pull all section titles for the poopulation of the drop-down box
	sections=HF.getAllSectionTitles()

	#Define the window's layout
	layout=[[sg.Combo(sections,size=(7,1),key="-SECTION-",readonly=True, enable_events=True)],
		[sg.Multiline("",size=(160,40),key="-OUTPUT-")],
		[sg.Button("Close")]]

	# Create the Window
	window = sg.Window('Section Viewer', layout, font=defaultFont,resizable=True)

	#Event Loop to process "events" and get the "values" of the inputs
	#Cease running if they close the window
	event=-1
	while event != sg.WIN_CLOSED and event != "Close":
		event, values = window.read()
		
		#If the 'section' box is interacted with and is not blank (i.e. an option was selected from the dropdown box)
		if event=="-SECTION-" and values['-SECTION-']!="":
			#Clear the box
			window["-OUTPUT-"].Update('')
			
			#get the data
			sec=values['-SECTION-']
			output,output2=HF.getAllDataForSection(sec)#output is the current status, output2 is the beginning of semester status
			output=output.values.tolist()
			output2=output2.head(1).values.tolist()[0]
			
			#Print the normal, unchanged schedule as it exists at the beginning of the semester
			window["-OUTPUT-"].print("Normally Scheduled: "+str(output2[2])+" @ "+str(output2[3]),text_color='black')
			normalNames=[]
			for ID in output2[4:]:
				normalNames.append(f'{HF.IDToName(ID)[:15]:15}')
			window["-OUTPUT-"].print('1  '+output2[1]+' '+', '.join(normalNames),text_color='blue')
			
			#Print a linebreak
			window["-OUTPUT-"].print("-"*160,text_color='black')
			
			#print the schedule for each week, one week per row
			window["-OUTPUT-"].print("Currently Scheduled:",text_color='black')
			for line in output:
				names=[]
				for ID in line[4:]:
					names.append(f'{HF.IDToName(ID)[:15]:15}')
				color='blue'
				if names!=normalNames:
					color='red'
				window["-OUTPUT-"].print(f'{line[0]:2} '+line[1]+' '+', '.join(names),text_color=color)
			
		
		
		
	window.close()