Example #1
0
    def _context_changed(self, e: PropertyChangedEventArgs):
        if e.property_name == "image":
            if self._image is not None:
                self._scene.remove_effect(self._image)
                self._image = None

            if isinstance(self._data_context.image, HTTPError):
                err: HTTPError = self._data_context.image
                msg = str(err.code) + "\n" + err.reason
                self._scene.add_effect(
                    PopUpDialog(self._screen,
                                msg, ["Close"],
                                on_close=self._back,
                                theme="user_theme"))
            elif isinstance(self._data_context.image, URLError):
                err: URLError = self._data_context.image
                self._scene.add_effect(
                    PopUpDialog(self._screen,
                                str(err.reason), ["Close"],
                                on_close=self._back,
                                theme="user_theme"))
            else:
                self._image = Print(
                    self.screen,
                    ColourImageFile(self._screen,
                                    self._data_context.image,
                                    height=self._screen.height), -1)
                self._scene.add_effect(self._image)
Example #2
0
    def start_trace(self, saved_data, real_data):
        try:
            if (len(self.data['COMPUTE'].strip()) == 0):
                self._scene.add_effect(PopUpDialog(self._screen, "Please enter a compute node name.", ["OK"]))
                return

            if not (TRACE.compute_list.has_key(self.data['COMPUTE'].strip())):
                self._scene.add_effect(
                    PopUpDialog(self._screen, 'No ' + self.data["COMPUTE"].strip() + '(COMPUTE NODE) registered',
                                ["OK"]))
                return

            if len(saved_data) == 0:
                self._scene.add_effect(PopUpDialog(self._screen, "Please enter a flow-trace condition.", ["OK"]))
                return

            num = len(self.trace_history) + 1
            data = (saved_data, num)

            self.trace_history.insert(0, data)
            self.real_trace.append(real_data)

            self._list_view.value = len(self.trace_history)

            cmd_rt = TRACE.exec_trace(TRACE.compute_id, TRACE.compute_list[self.data['COMPUTE'].strip()], real_data)

            self._trace_result.value = cmd_rt
        except:
            LOG.exception_err_write()
Example #3
0
    def test_pop_up_widget(self):
        """
        Check widget tab stops work as expected.
        """
        def test_on_click(selection):
            raise NextScene(str(selection))

        screen = MagicMock(spec=Screen, colours=8, unicode_aware=False)
        scene = MagicMock(spec=Scene)
        canvas = Canvas(screen, 10, 40, 0, 0)
        form = PopUpDialog(canvas, "Message", ["Yes", "No"], test_on_click)
        form.register_scene(scene)
        form.reset()

        # Check that the pop-up is rendered correctly.
        form.update(0)
        self.assert_canvas_equals(
            canvas, "                                        \n" +
            "                                        \n" +
            "          +------------------+          \n" +
            "          |Message           |          \n" +
            "          |                  |          \n" +
            "          | < Yes >  < No >  |          \n" +
            "          +------------------+          \n" +
            "                                        \n" +
            "                                        \n" +
            "                                        \n")

        # Check that mouse input triggers the close function.
        with self.assertRaises(NextScene):
            self.process_mouse(form, [(14, 5, MouseEvent.LEFT_CLICK)])

        # Check that the pop-up swallows all events.
        event = object()
        self.assertIsNone(form.process_event(event))
Example #4
0
 def _on_action_selected(self, action):
     if action == 0:
         self._scene.add_effect(PopUpDialog(self._screen, "Historie.", ["Nakupy", "Prodeje", "Odpisy", "Zpet"], self._on_history_selected, True, u'green'))
     elif action == 1:
         raise NextScene("AddStock")
     elif action == 2:
         raise NextScene("ReduceStock")
     elif action == 3:
         raise NextScene("EditItem")        
     elif action == 4:
         self._scene.add_effect(PopUpDialog(self._screen, "Opravdu smazat?.", ["Ano", "Ne"], self._delete_on_close, True, u'warning'))
     else :
         return
Example #5
0
 def _ok(self):
     try:
         self.save(validate=True)
         row = Row(self.data.values())
         row.set_types(self.table.get_column_types())
         self.table.edit_current_row(row)
         self._cancel()
     except InvalidFields:
         popup = PopUpDialog(
             self.__screen,
             'Error: An invalid value vas entered into form', ['OK'],
             has_shadow=True)
         popup.set_theme('monochrome')
         self._scene.add_effect(popup)
Example #6
0
    def test_shadow(self):
        """
        Check Frames support shadows.
        """
        def test_on_click(selection):
            raise NextScene(str(selection))

        screen = MagicMock(spec=Screen, colours=8)
        scene = MagicMock(spec=Scene)
        canvas = Canvas(screen, 10, 40, 0, 0)
        for y in range(10):
            canvas.print_at("X" * 40, 0, y)
        form = PopUpDialog(
            canvas, "Message", ["Yes", "No"], test_on_click, has_shadow=True)
        form.register_scene(scene)
        form.reset()

        # Check that the pop-up is rendered correctly.
        form.update(0)
        self.assert_canvas_equals(
            canvas,
            "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n" +
            "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n" +
            "XXXXXXXXXX+------------------+XXXXXXXXXX\n" +
            "XXXXXXXXXX|Message           | XXXXXXXXX\n" +
            "XXXXXXXXXX|                  | XXXXXXXXX\n" +
            "XXXXXXXXXX| < Yes >  < No >  | XXXXXXXXX\n" +
            "XXXXXXXXXX+------------------+ XXXXXXXXX\n" +
            "XXXXXXXXXXX                    XXXXXXXXX\n" +
            "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n" +
            "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n")
Example #7
0
    def test_cjk_popup(self):
        """
        Check PopUpDialog widgets work with CJK double-width characters.
        """
        # Apologies to anyone who actually speaks this language!  I just need some double-width
        # glyphs so have re-used the ones from the original bug report.
        screen = MagicMock(spec=Screen, colours=8, unicode_aware=False)
        scene = MagicMock(spec=Scene)
        canvas = Canvas(screen, 10, 40, 0, 0)
        form = PopUpDialog(canvas, u"你確定嗎? 你確定嗎? 你確定嗎?", [u"是", u"否"])
        form.register_scene(scene)
        form.reset()

        # Check that the pop-up is rendered correctly.
        form.update(0)
        self.assert_canvas_equals(
            canvas, "                                        \n" +
            "                                        \n" +
            "       +------------------------+       \n" +
            "       |你你確確定定嗎嗎?? 你你確確定定嗎嗎??   |       \n" +
            "       |你你確確定定嗎嗎??              O       \n" +
            "       |                        |       \n" +
            "       |   < 是是 >      < 否否 >   |       \n" +
            "       +------------------------+       \n" +
            "                                        \n" +
            "                                        \n")
Example #8
0
    def _delete(self):
        def act_on_selection(selection):
            if selection == 0:  # Yes is selected
                self.save()
                self.table.current_row = self.data['row_index']
                self.table.del_current_row()
                self._reload_list()

        popup = PopUpDialog(self.__screen,
                            "Hey dumbass. Are you sure you want to proceed?",
                            ["Yes", "No"],
                            has_shadow=True,
                            on_close=act_on_selection)
        popup.set_theme('monochrome')
        self._scene.add_effect(popup)
Example #9
0
 def _asset_load_change(self, percent, **kwargs):
     del kwargs
     if self._asset_percent:
         self.scene.remove_effect(self._asset_percent)
     self._asset_percent = PopUpDialog(self.screen, 'LOADING ASSETS: {}%'.format(percent), [])
     self.scene.add_effect(self._asset_percent)
     self._schedule_draw_screen()
Example #10
0
 def _bcp_connection_attempt(self, name, host, port, **kwargs):
     del name
     del kwargs
     self._pending_bcp_connection = PopUpDialog(self.screen,
                                                'WAITING FOR MEDIA CONTROLLER {}:{}'.format(host, port), [])
     self.scene.add_effect(self._pending_bcp_connection)
     self._schedule_draw_screen()
Example #11
0
 def _ok(self):
     self.save()
     try:
         self._model.stock.update_current_item(self.data['name'], self.data['price'])
     except Exception as ex:
         self._scene.add_effect(PopUpDialog(self._screen, "Chyba: "+str(ex), ["OK"], None, True, u'warning'))
     raise NextScene("StockView")
Example #12
0
    def _quit(self):
        def _yes_no(selected):
            if selected == 0:
                raise StopApplication("bye")

        self._scene.add_effect(
            PopUpDialog(self._screen, "确定咩", ["OK", "NO"], on_close=_yes_no))
 def fail(msg):
     dialog = PopUpDialog(self._screen,
                          f"  {msg}  ",
                          buttons=["OK"],
                          theme="warning")
     self._scene.add_effect(dialog)
     return False
Example #14
0
 def display_error(self, exception):
     error_popup = PopUpDialog(
         self._screen,
         f"{type(exception).__name__}, {exception}",
         ["Ok"],
         theme="tlj256")
     self._scene.add_effect(error_popup)
Example #15
0
 def _quit(self: StartMenuView) -> None:
     self._scene.add_effect(
         PopUpDialog(self._screen,
                     self._("Вы уверенны?"),
                     [self._("Да"), self._("Нет")],
                     has_shadow=True,
                     on_close=self._quit_on_yes))
Example #16
0
 def _view(self):
     # Build result of this form and display it.
     self.save()
     message = "Values entered are:\n\n"
     for key, value in self.data.items():
         message += "- {}: {}\n".format(key, value)
     self._scene.add_effect(PopUpDialog(self._screen, message, ["OK"]))
Example #17
0
 def _keyerror_handler(self: StartChatView) -> None:
     self._scene.add_effect(
         PopUpDialog(self._screen,
                     self._("Пожалуйста, заполните все поля!"),
                     [self._("Ок"), self._("Назад")],
                     has_shadow=True,
                     on_close=self._errors_handler_on_yes))
Example #18
0
 def _back(self: ChatsListView) -> None:
     self._scene.add_effect(
         PopUpDialog(self._screen,
                     self._(f"Вы уверенны?"),
                     [self._("Да"), self._("Нет")],
                     has_shadow=True,
                     on_close=self._quit_on_yes))
Example #19
0
 def _quit(self):
     self._scene.add_effect(
         PopUpDialog(self._screen,
                     "Are you sure?",
                     ["Yes", "No"],
                     has_shadow=True,
                     on_close=self._quit_on_yes))
Example #20
0
 def _open_help(self):
     self._scene.add_effect(
         PopUpDialog(
             self._screen,
             HELP,
             ["Ok"],
             # has_shadow=True,
             theme="default"))
Example #21
0
 def _registration_error_handler(self: RegistrationView, msg: str) -> None:
     self._scene.add_effect(
         PopUpDialog(
             self._screen, msg,
             [self._("Ok"), self._("Назад")], has_shadow=True,
             on_close=self._errors_handler_on_yes
         )
     )
Example #22
0
 def _load(self):
     self.save()
     try:
         self._model.orders.load(url=self.data["xmlUrl"])
     except Exception as e:
         self._scene.add_effect(PopUpDialog(self._screen, "Nelze nacist: "+str(e), ["OK"], self._on_error, True, u'warning'))
     else:
         raise NextScene("ProcessOrders")
Example #23
0
    def test_pop_up_widget(self):
        """
        Check widget tab stops work as expected.
        """
        def test_on_click(selection):
            raise NextScene(str(selection))

        screen = MagicMock(spec=Screen, colours=8)
        scene = MagicMock(spec=Scene)
        canvas = Canvas(screen, 10, 40, 0, 0)
        form = PopUpDialog(canvas, "Message", ["Yes", "No"], test_on_click)
        form.register_scene(scene)
        form.reset()

        # Check that the pop-up is rendered correctly.
        form.update(0)
        self.assert_canvas_equals(
            canvas,
            "                                        \n" +
            "                                        \n" +
            "          +------------------+          \n" +
            "          |Message           |          \n" +
            "          |                  |          \n" +
            "          | < Yes >  < No >  |          \n" +
            "          +------------------+          \n" +
            "                                        \n" +
            "                                        \n" +
            "                                        \n")

        # Check that mouse input triggers the close function.
        with self.assertRaises(NextScene):
            self.process_mouse(form, [(14, 5, MouseEvent.LEFT_CLICK)])
Example #24
0
    def _login(self):
        username = self._text_name.value
        pwd = self._text_pwd.value
        _my, err = Game.Login(username, pwd)
        if err is not None:
            self._scene.add_effect(
                PopUpDialog(self._screen, err.__str__(), ["OK"]))
            return

        raise NextScene("Game")
Example #25
0
 def _view(self):
     try:
         self.save(validator=True)
         message = "Values entered are:\n\n"
         for key, value in self.data.items():
             message += "-{}: {}\n".formate(key, value)
     except InvalidFields as exc:
         message = "The following fields are invalid:\n\n"
         for field in exc.fields:
             message += "-{}\n".formate(field)
     self.scene.add_effect(PopUpDialog(self._screen, message, ["OK"]))
Example #26
0
    def _check_answer(self):
        self.save()
        for key, value in self.data.items():
            if key == "answer":
                if value == str(self._excercise.result):
                    self._excercise.solved = True
                    self.game.player.addPoints(1)
                    self.game.save()
                    self._scene.add_effect(
                        PopUpDialog(self._screen,
                                    "Richtig!",
                                    ["Weiter"],
                                    on_close=self._next_round))

                else:
                    self._scene.add_effect(
                        PopUpDialog(self._screen,
                                    "Falsch!",
                                    ["Neuer Versuch"],
                                    on_close=self._again))
Example #27
0
    def _register(self):
        username = self._text_name.value
        nickname = self._text_nickname.value
        pwd = self._text_pwd.value
        gender = self._radio_gender.value
        err = Game.Register(username, nickname, pwd, gender)
        if err is not None:
            self._scene.add_effect(
                PopUpDialog(self._screen, err.__str__(), ["OK"]))
            return

        raise NextScene('Main')
Example #28
0
    def on_select(self):
        global root_dir
        # Update the list data as needed.
        if self._list.value and os.path.isdir(self._list.value):
            self._root = root_dir = self._list.value
            self._populate_list()
        else:
            self._scene.add_effect(
                PopUpDialog(self._screen, "You selected: {}".format(self._list.value), ["OK"]))

        # Force a refresh for improved responsiveness
        self._last_frame = 0
Example #29
0
 def _on_action_selected(self, action):
     if action == 0:
         try:
             self._model.orders.apply_selected()
         except Exception as exc: 
             self._scene.add_effect(PopUpDialog(self._screen, str(exc), ["OK"], None, True, u'warning'))
         self._reload_list()
     elif action == 1:
         self._model.orders.ignore_selected()
         self._reload_list()
     else :
         return
Example #30
0
    def test_clone(self):
        """
        Check Frame cloning works.
        """
        def test_on_click(selection):
            raise NextScene(str(selection))

        screen = MagicMock(spec=Screen, colours=8)
        scene = MagicMock(spec=Scene)
        scene2 = Scene([], 10)
        canvas = Canvas(screen, 10, 40, 0, 0)

        # Check that pop-up dialogs get copied to the new Scene
        form = PopUpDialog(
            canvas, "Message", ["Yes", "No"], test_on_click, has_shadow=True)
        form.register_scene(scene)
        form.clone(canvas, scene2)
        self.assertEqual(len(scene2.effects), 1)
        self.assertEqual(scene2.effects[0]._text, "Message")
        self.assertEqual(scene2.effects[0]._buttons, ["Yes", "No"])

        # Check that normal Frame data gets copied to the new Scene.
        frame = TestFrame(canvas)
        frame2 = TestFrame(canvas)
        scene2 = Scene([frame2], 10)
        frame.register_scene(scene)
        frame2.register_scene(scene)
        frame.data = {"TA": "something"}
        frame2.data = {}

        self.assertEqual(frame2.data, {})
        self.assertNotEqual(frame2.data, frame.data)
        frame.clone(canvas, scene2)
        self.assertEqual(frame2.data, frame.data)
Example #31
0
def screen(scr, scene, data):
    scene_decorators = [StartupView(scr, data)]
    result = prerequisite_check()
    if result:
        scene_decorators.append(
            PopUpDialog(scr, result, [_("OK")], on_close=stop_wizard))
    scenes = [
        Scene(scene_decorators, -1, name="Welcome"),
        Scene([ModulesView(scr, data)], -1, name="Modules"),
        Scene([ModulesSetupView(scr, data)], -1, name="ModulesSetup")
    ]
    scene = scene or scenes[0]
    scr.play(scenes, stop_on_resize=True, start_scene=scene)