예제 #1
0
    def _show_remove_item_view(self, item):
        self._empty_view()

        self._current_view = RemoveItemView(self._root, self._ctrl,
                                            self._views, item)
        self._current_view.pack()
예제 #2
0
    def _show_wishlist_view(self):
        self._empty_view()

        self._current_view = WishlistView(self._root, self._ctrl, self._views)
        self._current_view.pack()
예제 #3
0
    def _show_create_user_view(self):
        self._empty_view()

        self._current_view = CreateUserView(self._root, self._ctrl,
                                            self._views)
        self._current_view.pack()
예제 #4
0
    def _show_login_view(self):
        self._empty_view()

        self._current_view = LoginView(self._root, self._ctrl, self._views)
        self._current_view.pack()
예제 #5
0
    def _show_information_view(self, msg, view_number):
        self._empty_view()

        self._current_view = InfoView(self._root, self._ctrl, self._views, msg,
                                      view_number)
        self._current_view.pack()
예제 #6
0
    def _show_management_view(self):
        self._empty_view()

        self._current_view = ManagementView(self._root, self._ctrl,
                                            self._views)
        self._current_view.pack()
예제 #7
0
class UI:
    """UI-luokkien pääluokka.

    Tässä luokassa suoritetaan kaikkien muiden UI-luokkien kontrollointi. Muut näkymät tarjotaan
    parametrina listassa kaikille näkymille, jolloin niihin siirtymistä on helppo pyytää kutsumalla
    vain pääluokan metodia listasta. Luokka kutsuu pyytävän luokan tuhoamismetodia ja vaihtaa sitten
    näkymäkseen pyydetyn luokan näkymän. Joillekin metodeille voi antaa myös parametreja kutsussa.
    """
    def __init__(self, root):
        """Konstruktori, alustaa luokan attribuutit.

        Args:
            root: saa parametrina isäntänäkymän, johon näkymät sidotaan.
        """

        self._root = root
        self._current_view = None
        self._ctrl = Controller()
        self._views = [
            self._show_main_view, self._show_management_view,
            self._show_information_view, self._end_session,
            self._show_login_view, self._show_create_user_view,
            self._show_remove_item_view, self._show_wishlist_view, self
        ]
        self.user = None

    def start(self):
        """Käynnistää sovelluksen ensimmäisenä näytettävän näkymän, eli kirjautumisnäkymän."""

        self._show_login_view()

    def _show_main_view(self):
        self._empty_view()

        self._current_view = MainView(self._root, self._ctrl, self._views)
        self._current_view.pack()

    def _show_management_view(self):
        self._empty_view()

        self._current_view = ManagementView(self._root, self._ctrl,
                                            self._views)
        self._current_view.pack()

    def _show_information_view(self, msg, view_number):
        self._empty_view()

        self._current_view = InfoView(self._root, self._ctrl, self._views, msg,
                                      view_number)
        self._current_view.pack()

    def _show_login_view(self):
        self._empty_view()

        self._current_view = LoginView(self._root, self._ctrl, self._views)
        self._current_view.pack()

    def _show_create_user_view(self):
        self._empty_view()

        self._current_view = CreateUserView(self._root, self._ctrl,
                                            self._views)
        self._current_view.pack()

    def _show_remove_item_view(self, item):
        self._empty_view()

        self._current_view = RemoveItemView(self._root, self._ctrl,
                                            self._views, item)
        self._current_view.pack()

    def _show_wishlist_view(self):
        self._empty_view()

        self._current_view = WishlistView(self._root, self._ctrl, self._views)
        self._current_view.pack()

    def _empty_view(self):
        if self._current_view:
            self._current_view.destroy()

        self._current_view = None

    def _end_session(self):
        self._root.destroy()