Skip to content

Commit

Permalink
Submit button only works when atleast 2 players
Browse files Browse the repository at this point in the history
  • Loading branch information
emadahmad2001 authored Apr 11, 2021
1 parent d2b1e30 commit 9e5da93
Showing 1 changed file with 59 additions and 62 deletions.
121 changes: 59 additions & 62 deletions Pages.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from tkinter import ttk
from apicollect import Overwatch
from PIL import ImageTk, Image
import glob
import os

"""
Expand All @@ -15,12 +16,9 @@
"""






class PageOne(tk.Frame):
def __init__(self, parent):
global img
tk.Frame.__init__(self, parent)

self.game = None
Expand All @@ -35,14 +33,18 @@ def __init__(self, parent):
self.game_choices['values'] = ['Overwatch']
self.game_choices.grid(row=2, column=1)


"""
Idea: Maybe we can use validate commands for the entries
"""
for filename in glob.glob('yourpath/logo.png'):
img = ImageTk.PhotoImage(Image.open(filename).resize((475, 221)))
self.panel = Label(self, image=img)
self.panel.grid(row=0, column=1, columnspan=4)

img = ImageTk.PhotoImage(Image.open(r"C:\Users\maste\Desktop\CCT211\Term_Project\logo.png").resize((475, 221)))
self.panel = Label(self, image = img)
self.panel.grid(row=0, column=1, columnspan= 4)
# img = ImageTk.PhotoImage(Image.open(r"C:\Users\maste\Desktop\CCT211\Term_Project\logo.png").resize((475, 221)))

# self.panel = Label(self, image=img)
# self.panel.grid(row=0, column=1, columnspan=4)
self.sub_btn = Button(self, text='Submit', command=lambda: parent.change_frame(PageTwo, "Hello"))
self.sub_btn.grid(row=3, column=1)
self.sub_btn["state"] = DISABLED
Expand All @@ -57,8 +59,6 @@ def callback(self, event_object):
self.sub_btn["state"] = NORMAL




class PageTwo(tk.Frame):
"""
For Overwatch
Expand All @@ -73,7 +73,6 @@ def __init__(self, parent):

self.parent = parent


self.ow_tree = ttk.Treeview(self)
# Create the columns
self.ow_tree['columns'] = ("Battle Tag", "Platform", "Region")
Expand Down Expand Up @@ -122,13 +121,14 @@ def __init__(self, parent):

self.add_btn = Button(self, text='Add Player', command=self.add_player)
self.add_btn.grid(row=0, column=4)
self.add_btn = Button(self, text='Remove Player(s)', command=self.validate_tag)
self.add_btn = Button(self, text='Remove Player(s)', command=self.validate_tag(self.battle_id))
self.add_btn.grid(row=1, padx=5, column=4)
self.add_btn = Button(self, text='Clear', command=self.clear)
self.add_btn.grid(row=2, column=4)
self.back_btn = Button(self, text='Go back', command=lambda: parent.change_frame(PageOne)).grid(row=3, column=4)
self.sub_btn = Button(self, text='Submit', command=lambda: parent.change_frame(PageThree)).grid(row=4, column=4)

self.sub_btn2 = Button(self, text='Submit', command=lambda: parent.change_frame(PageThree))
self.sub_btn2.grid(row=4, column=4)
self.sub_btn2["state"] = DISABLED

def validate_tag(self, id):
if "#" in id.get():
Expand Down Expand Up @@ -160,15 +160,26 @@ def add_player(self):

except:
messagebox.showinfo('Error!', 'You have entered an invalid profile!')
self.callback()

def clear(self):
for player in self.ow_tree.get_children():
self.ow_tree.delete(player)
self.num_players = 0
self.callback()

def remove_players(self):
t = self.ow_tree.selection()
for player in t:
self.ow_tree.delete(player)
self.num_players -= 1
self.callback()

def callback(self):
if self.num_players >= 2:
self.sub_btn2["state"] = NORMAL
else:
self.sub_btn2["state"] = DISABLED


class PageThree(tk.Frame):
Expand All @@ -184,24 +195,22 @@ def __init__(self, parent):
self.Label_Stats.grid(row=0, column=1, columnspan=2)

self.gameplay = StringVar()
self.qp_btn = Radiobutton(self, text ="Quick Play", variable = self.gameplay, value = "quickPlayStats", command = lambda: self.gameplay_chosen(), tristatevalue=0)
self.cp_btn = Radiobutton(self, text="Competitive", variable=self.gameplay, value="competitiveStats", command=lambda: self.gameplay_chosen(), tristatevalue=0)


self.qp_btn = Radiobutton(self, text="Quick Play", variable=self.gameplay, value="quickPlayStats",
command=lambda: self.gameplay_chosen(), tristatevalue=0)
self.cp_btn = Radiobutton(self, text="Competitive", variable=self.gameplay, value="competitiveStats",
command=lambda: self.gameplay_chosen(), tristatevalue=0)

self.qp_btn.grid(row = 1, column = 1)
self.cp_btn.grid(row = 1, column = 2)
self.qp_btn.grid(row=1, column=1)
self.cp_btn.grid(row=1, column=2)

self.scrollbar = Scrollbar(self, orient = VERTICAL)
self.scrollbar = Scrollbar(self, orient=VERTICAL)
self.scrollbar.grid(row=2, column=2, sticky=tk.N + tk.S)
self.filter_list = self.parent.displayed_stats



self.filter_lb = Listbox(self, selectmode = MULTIPLE, width = 50, yscrollcommand=self.scrollbar.set)
self.filter_lb = Listbox(self, selectmode=MULTIPLE, width=50, yscrollcommand=self.scrollbar.set)
for filter in self.filter_list[1:]:
self.filter_lb.insert(END, filter)
self.filter_lb.grid(row = 2, column = 1, sticky=tk.N + tk.S + tk.E + tk.W)
self.filter_lb.grid(row=2, column=1, sticky=tk.N + tk.S + tk.E + tk.W)
self.filter_lb["state"] = DISABLED
self.filter_lb.bind("<<ListboxSelect>>", self.selected_stats)
self.scrollbar['command'] = self.filter_lb.yview
Expand All @@ -215,24 +224,21 @@ def __init__(self, parent):
def selected_stats(self, lb):
selected_stats = lb.widget.curselection()
self.parent.compared_stats = ["Name"]
if (selected_stats != ()):
if selected_stats != ():
for stat in selected_stats:

if self.filter_list[int(stat)+1] not in self.parent.compared_stats:
if self.filter_list[int(stat) + 1] not in self.parent.compared_stats:
self.parent.compared_stats.append(self.filter_list[int(stat) + 1])
if len(self.parent.compared_stats) >= 2:
self.sbt_stats["state"] = NORMAL
else:
self.sbt_stats["state"] = DISABLED



def gameplay_chosen(self):
self.filter_lb["state"] = NORMAL
self.parent.game_mode = self.gameplay.get()



class PageFour(tk.Frame):
"""
The Fourth page
Expand All @@ -247,24 +253,24 @@ def __init__(self, parent):
self.Label_table.grid(row=0, column=1, columnspan=2)
self.tree_stats = {}

self.sub_awards = {'Cards': 'cards', 'Medals': 'medals', 'Bronze Medals': 'medalsBronze', 'Silver Medals': 'medalsSilver',
'Gold Medals': 'medalsGold'}
self.sub_game_results = {'Games Won':'gamesWon', 'gamesLost':'gamesLost', 'gamesPlayed':'gamesPlayed'}
self.sub_awards = {'Cards': 'cards', 'Medals': 'medals', 'Bronze Medals': 'medalsBronze',
'Silver Medals': 'medalsSilver',
'Gold Medals': 'medalsGold'}
self.sub_game_results = {'Games Won': 'gamesWon', 'gamesLost': 'gamesLost', 'gamesPlayed': 'gamesPlayed'}
self.in_game_stats = {'barrierDamageDone': 'barrierDamageDone', 'damageDone': 'damageDone', 'deaths': 'deaths',
'eliminations': 'eliminations','soloKills': 'soloKills','objectiveKills': 'objectiveKills'}
self.best_game_results = {'allDamageDoneMostInGame': 'allDamageDoneMostInGame', 'barrierDamageDoneMostInGame':'barrierDamageDoneMostInGame', 'eliminationsMostInGame':'eliminationsMostInGame',
'healingDoneMostInGame':'healingDoneMostInGame', 'killsStreakBest':'killsStreakBest', 'multikillsBest':'multikillsBest'}
'eliminations': 'eliminations', 'soloKills': 'soloKills',
'objectiveKills': 'objectiveKills'}
self.best_game_results = {'allDamageDoneMostInGame': 'allDamageDoneMostInGame',
'barrierDamageDoneMostInGame': 'barrierDamageDoneMostInGame',
'eliminationsMostInGame': 'eliminationsMostInGame',
'healingDoneMostInGame': 'healingDoneMostInGame',
'killsStreakBest': 'killsStreakBest', 'multikillsBest': 'multikillsBest'}
self.in_game_index = 0
self.best_in_game_index = 0
self.game_outcome_index = 0
self.awards_index = 0
self.back_btn = Button(self, text='Go back', command=lambda: parent.change_frame(PageThree)).grid(row=3, column=2)






self.back_btn = Button(self, text='Go back', command=lambda: parent.change_frame(PageThree)).grid(row=3,
column=2)

for stat in self.parent.compared_stats:
self.tree_stats[stat] = []
Expand All @@ -274,20 +280,17 @@ def __init__(self, parent):
# Create the columns
self.ow_stat_tree['columns'] = self.tree_stats['Name']


self.ow_stat_tree.column("#0", width=120, minwidth=25)
#
for x, stat in enumerate(self.tree_stats['Name']):

self.ow_stat_tree.column(x, anchor=CENTER, width=100)

# Create the headings
self.ow_stat_tree.heading("#0", text="Player #", anchor=W)
for x, stat in enumerate(self.tree_stats['Name']):
self.ow_stat_tree.heading(x, text="Player {}".format(x+1), anchor=CENTER)
self.ow_stat_tree.grid(row=0, column=2, rowspan=len(self.tree_stats['Name']) + 1, padx=5, pady=5, sticky=E + W + S + N)


self.ow_stat_tree.heading(x, text="Player {}".format(x + 1), anchor=CENTER)
self.ow_stat_tree.grid(row=0, column=2, rowspan=len(self.tree_stats['Name']) + 1, padx=5, pady=5,
sticky=E + W + S + N)

for x, stat in enumerate(self.tree_stats):
"""
Expand All @@ -306,19 +309,19 @@ def __init__(self, parent):
self.awards_index = x
self.ow_stat_tree.insert('', index='end', iid=x, text=stat)
elif stat in self.sub_awards:
self.ow_stat_tree.insert('', index='end', iid=x, text=stat, values = self.tree_stats[stat])
self.ow_stat_tree.insert('', index='end', iid=x, text=stat, values=self.tree_stats[stat])
self.ow_stat_tree.move(str(x), str(self.awards_index), str(self.awards_index))
elif stat in self.best_game_results:
self.ow_stat_tree.insert('', index='end', iid=x, text=stat, values = self.tree_stats[stat])
self.ow_stat_tree.insert('', index='end', iid=x, text=stat, values=self.tree_stats[stat])
self.ow_stat_tree.move(str(x), str(self.best_in_game_index), str(self.best_in_game_index))
elif stat in self.in_game_stats:
self.ow_stat_tree.insert('', index='end', iid=x, text=stat, values = self.tree_stats[stat])
self.ow_stat_tree.insert('', index='end', iid=x, text=stat, values=self.tree_stats[stat])
self.ow_stat_tree.move(str(x), str(self.in_game_index), str(self.in_game_index))
elif stat in self.sub_game_results:
self.ow_stat_tree.insert('', index='end', iid=x, text=stat, values = self.tree_stats[stat])
self.ow_stat_tree.insert('', index='end', iid=x, text=stat, values=self.tree_stats[stat])
self.ow_stat_tree.move(str(x), str(self.game_outcome_index), str(self.game_outcome_index))
else:
self.ow_stat_tree.insert('', index='end', iid=x, text=stat, values = self.tree_stats[stat])
self.ow_stat_tree.insert('', index='end', iid=x, text=stat, values=self.tree_stats[stat])

# self.displayed_filters = ['Name', 'Level', 'Prestige', 'Rating', 'Endorsement Level', 'In-Game Stats',
# 'Best In-Game Stats', 'Game Outcomes', 'Awards']
Expand Down Expand Up @@ -351,13 +354,7 @@ def get_player_info(self, stat):
for sub_stat in best_game_results:
if sub_stat not in self.tree_stats:
self.tree_stats[sub_stat] = []
self.tree_stats[sub_stat].append(player.get_stat(best_game_results[sub_stat], self.parent.game_mode))
self.tree_stats[sub_stat].append(
player.get_stat(best_game_results[sub_stat], self.parent.game_mode))
else:
self.tree_stats[stat].append(player.get_stat(stat, self.parent.game_mode))







0 comments on commit 9e5da93

Please sign in to comment.