summaryrefslogtreecommitdiff
path: root/jfr_playoff/gui/tabs.py
blob: ab709687b7ce1bf57256e34ea7bf3fd5c5b15ea3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#coding=utf-8

import os

import tkinter as tk
from tkinter import ttk
import tkFileDialog as tkfd

class PlayoffTab(ttk.Frame):
    def __init__(self, master):
        ttk.Frame.__init__(self, master)
        self.frame = ttk.Frame(self)
        self.frame.pack(fill=tk.BOTH, expand=True, padx=5, pady=5)
        self.renderContent(self.frame)

    @property
    def title(self):
        pass

    def renderContent(self, container):
        pass

class MainSettingsTab(PlayoffTab):
    @property
    def title(self):
        return 'Główne ustawienia'

    def _chooseOutputPath(self):
        currentPath = self.outputPath.get()
        filename = tkfd.asksaveasfilename(
            initialdir=os.path.dirname(currentPath) if currentPath else '.',
            title='Wybierz plik wyjściowy',
            filetypes=(('HTML files', '*.html'),))
        if filename:
            if not filename.lower().endswith('.html'):
                filename = filename + '.html'
            self.outputPath.set(filename)

    def _updateRefreshFields(self):
        self.refreshInterval.configure(
            state=tk.NORMAL if self.refresh.get() else tk.DISABLED)

    def renderContent(self, container):
        (ttk.Label(container, text='Plik wynikowy:')).grid(
            row=0, column=0, sticky=tk.E, pady=2)
        outputPath = tk.Frame(container)
        outputPath.grid(row=0, column=1, sticky=tk.E+tk.W, pady=2)
        self.outputPath = tk.StringVar()
        (tk.Entry(outputPath, width=60, textvariable=self.outputPath)).grid(
            row=0, column=0, sticky=tk.W+tk.E)
        (tk.Button(
            outputPath,
            text='[]', command=self._chooseOutputPath)).grid(row=0, column=1)
        outputPath.columnconfigure(0, weight=1)

        (ttk.Separator(container, orient=tk.HORIZONTAL)).grid(
            row=1, column=0, columnspan=2, sticky=tk.E+tk.W, pady=2)

        (ttk.Label(container, text='Ustawienia strony')).grid(
            row=2, column=0, columnspan=2, sticky=tk.W, pady=5)
        (ttk.Label(container, text='Tytuł:')).grid(
            row=3, column=0, sticky=tk.E, pady=2)
        self.pageTitle = tk.StringVar()
        (tk.Entry(container, textvariable=self.pageTitle)).grid(
            row=3, column=1, sticky=tk.W+tk.E, pady=2)
        (ttk.Label(container, text='Logoh:')).grid(
            row=4, column=0, sticky=tk.E+tk.N, pady=2)
        self.pageLogoh = tk.Text(container, width=45, height=10)
        self.pageLogoh.grid(
            row=4, column=1,
            sticky=tk.W+tk.N+tk.E+tk.S, pady=2)

        (ttk.Label(container, text='Odświeżaj:')).grid(
            row=5, column=0, sticky=tk.E, pady=2)
        refreshPanel = tk.Frame(container)
        refreshPanel.grid(row=5, column=1, sticky=tk.W+tk.E, pady=2)
        self.refresh = tk.IntVar()
        (tk.Checkbutton(
            refreshPanel,
            command=self._updateRefreshFields, variable=self.refresh)).grid(
                row=0, column=0)
        (ttk.Label(refreshPanel, text='co:')).grid(row=0, column=1)
        self.refreshInterval = tk.Spinbox(
            refreshPanel, from_=30, to=3600, width=5)
        self.refreshInterval.grid(row=0, column=2)
        (ttk.Label(refreshPanel, text='sekund')).grid(row=0, column=3)
        self._updateRefreshFields()

        container.columnconfigure(1, weight=1)
        container.rowconfigure(4, weight=1)

class TeamsTab(PlayoffTab):
    @property
    def title(self):
        return 'Uczestnicy'

class MatchesTab(PlayoffTab):
    @property
    def title(self):
        return 'Mecze'

class SwissesTab(PlayoffTab):
    @property
    def title(self):
        return 'Swissy'

class NetworkTab(PlayoffTab):
    @property
    def title(self):
        return 'Sieć'

class VisualTab(PlayoffTab):
    @property
    def title(self):
        return 'Wygląd'

class StyleTab(PlayoffTab):
    @property
    def title(self):
        return 'Style'

class TranslationsTab(PlayoffTab):
    @property
    def title(self):
        return 'Tłumaczenia'

__all__ = ['MainSettingsTab', 'TeamsTab', 'MatchesTab', 'SwissesTab',
           'NetworkTab', 'VisualTab', 'StyleTab', 'TranslationsTab']