Esempio n. 1
0
    def populate_list(self):
        try:
            p = re.compile(self.regexp, re.IGNORECASE)
        except re.error:
            filtered_files = self.all_files
        else:
            filtered_files = filter(p.search, self.all_files)

        def button_cb(locator, filename, button):
            self.filename = filename
            self.tui.controller.set_filename(locator, filename)
            self.tui.pop_window()

        self.walker.clear()
        for line in filtered_files:
            filename = line.strip()
            button = Button(filename)
            urwid.connect_signal(button,
                                 'click',
                                 button_cb,
                                 user_args=[self.locator, filename])
            self.walker.append(AttrMap(button, None, focus_map='selected'))
Esempio n. 2
0
    def update_buttons(self):
        buttons = []
        for at in self.actions:
            if len(at) == 2:

                def predicate(x):
                    return True

                label, func = at
            else:
                predicate, label, func = at

            if not predicate(self.machine):
                b = AttrMap(SelectableIcon(" (" + label + ")"),
                            'disabled_button', 'disabled_button_focus')
            else:
                b = AttrMap(
                    Button(label, on_press=func, user_data=self.machine),
                    'button_secondary', 'button_secondary focus')
            buttons.append((b, self.button_grid.options()))

        self.button_grid.contents = buttons
Esempio n. 3
0
 def __init__(self, message, close_func):
     self.close_func = close_func
     button = Button("Close", self.do_close)
     box = LineBox(Pile([Text(message), button]), title="Info")
     super().__init__(box)
Esempio n. 4
0
            @method open
            Alias to PopUpLauncher.open_pop_up
        """
        self.open_pop_up()
    def create_pop_up (self):
        p = PopUpDialog(self.item)
        connect_signal(p, 'close',
            lambda button: self.close_pop_up())
        return p
    def get_pop_up_parameters (self):
        return {'left':0, 'top':1, 'overlay_width':25, 'overlay_height':20}
"""
    Testing
"""
if __name__ == '__main__':
    b = Button('click me')
    p1 = Process.Process(1, lambda x: x, lambda: x)
    popup = ProcessItemDialog(b, p1)
    connect_signal(b, 'click', lambda x: popup.open())
    proc = AttrMap(popup, None)
    lb = ListBox(SimpleFocusListWalker([proc]))

    def exit (p):
        if p is 'q':
            raise ExitMainLoop

    m = MainLoop(
        lb,
        palette=palette,
        pop_ups=True,
        unhandled_input=exit
Esempio n. 5
0
 def get_button(label, id):
     button = Button(label, None, id)
     connect_signal(button, 'click', self.chosen_item, id)
     return button
 def __init__(self, label, on_press=None, user_data=None):
     Button.__init__(self, label, on_press, user_data)
     self._w = self._label
 def __init__(self, transport, click=False):
     self.transport = transport
     self.click     = click
     label = 'Click ON' if self.click else 'Click OFF'
     Button.__init__(self, label, self.on_click)
     self._w = self._label
Esempio n. 8
0
 def __init__(self, transport, click=False):
     self.transport = transport
     self.click = click
     label = 'Click ON' if self.click else 'Click OFF'
     Button.__init__(self, label, self.on_click)
     self._w = self._label
Esempio n. 9
0
def parse_tag_from_node(node):
    label = node.attr.label or u'click'
    return Button(label=label)
Esempio n. 10
0
 def _insert_buttons(self):
     bs = [Button("Ok", self.yes), Button("Cancel", self.no)]
     wrapped_buttons = self._wrap_focus(bs)
     return Columns(wrapped_buttons)
Esempio n. 11
0
    def update(self):
        self.update_status()
        self.walker.clear()
        locator = self.locator

        def cmd_cb(json_msg):
            self.display_errors(json_msg)
            self.update_status()

        fn = self.tui.controller.get_filename(locator)
        self.filename_txt.set_text("Selected file \"{}\"".format(fn))

        button = Button("[c] Connect")

        def button_cb(button, locator):
            self.tui.controller.connect(cmd_cb, locator)

        urwid.connect_signal(button, 'click', button_cb, locator)
        self.walker.append(AttrMap(button, None, focus_map='selected'))
        self.add_hotkey('c',
                        partial(button_cb, button, locator),
                        "connect",
                        omit_header=True)

        button = Button("[D] Disconnect")

        def button_cb(button, locator):
            self.tui.controller.disconnect(cmd_cb, locator)

        urwid.connect_signal(button, 'click', button_cb, locator)
        self.walker.append(AttrMap(button, None, focus_map='selected'))
        self.add_hotkey('D',
                        partial(button_cb, button, locator),
                        "disconnect",
                        omit_header=True)

        button = Button("[s] Start")

        def button_cb(button, locator):
            fn = self.tui.controller.get_filename(locator)
            if not fn:
                self.footer.set_text("Please Select a file first")
                return
            self.tui.controller.start(
                cmd_cb, locator, self.tui.controller.get_filename(locator))

        urwid.connect_signal(button, 'click', button_cb, locator)
        self.walker.append(AttrMap(button, None, focus_map='selected'))
        self.add_hotkey('s',
                        partial(button_cb, button, locator),
                        "start",
                        omit_header=True)

        button = Button("[S] Stop (ask nicely to stop)")

        def button_cb(button, locator):
            self.tui.controller.stop(cmd_cb, locator)

        urwid.connect_signal(button, 'click', button_cb, locator)
        self.walker.append(AttrMap(button, None, focus_map='selected'))
        self.add_hotkey('S',
                        partial(button_cb, button, locator),
                        "stop",
                        omit_header=True)

        button = Button("[!] Abort (Interrupt then disconnect)")

        def button_cb(button, locator):
            self.tui.controller.abort(cmd_cb, locator)

        urwid.connect_signal(button, 'click', button_cb, locator)
        self.walker.append(AttrMap(button, None, focus_map='selected'))
        self.add_hotkey('!',
                        partial(button_cb, button, locator),
                        "abort",
                        omit_header=True)

        button = Button("[p] Pause")

        def button_cb(button, locator):
            self.tui.controller.pause(cmd_cb, locator)

        urwid.connect_signal(button, 'click', button_cb, locator)
        self.walker.append(AttrMap(button, None, focus_map='selected'))
        self.add_hotkey('p',
                        partial(button_cb, button, locator),
                        "pause",
                        omit_header=True)

        button = Button("[r] Resume")

        def button_cb(button, locator):
            self.tui.controller.resume(cmd_cb, locator)

        urwid.connect_signal(button, 'click', button_cb, locator)
        self.walker.append(AttrMap(button, None, focus_map='selected'))
        self.add_hotkey('r',
                        partial(button_cb, button, locator),
                        "resume",
                        omit_header=True)

        button = Button("[l] Load File")

        def button_cb(button, locator):
            window = FileListWindow(self.tui, locator, self.device)
            self.tui.push_window(window)

        urwid.connect_signal(button, 'click', button_cb, locator)
        self.walker.append(AttrMap(button, None, focus_map='selected'))
        self.add_hotkey('l',
                        partial(button_cb, button, locator),
                        "load",
                        omit_header=True)

        button = Button("[m] Manual Control")

        def button_cb(button, locator):
            window = ManualControlWindow(self.tui, locator, self.device)
            self.tui.push_window(window)

        urwid.connect_signal(button, 'click', button_cb, locator)
        self.walker.append(AttrMap(button, None, focus_map='selected'))
        self.add_hotkey('m',
                        partial(button_cb, button, locator),
                        "manual",
                        omit_header=True)
Esempio n. 12
0
    def update(self):
        self.walker.clear()
        locator = self.locator

        def cmd_cb(json_msg):
            self.display_errors(json_msg)

        button = Button("[h] Home (G28 W)")

        def button_cb(button, locator):
            self.tui.controller.action("gcode {} 'G28 W'".format(locator),
                                       cmd_cb)

        urwid.connect_signal(button, 'click', button_cb, locator)
        self.walker.append(AttrMap(button, None, focus_map='selected'))
        self.add_hotkey('h',
                        partial(button_cb, button, locator),
                        "home",
                        omit_header=True)

        def edit_cb(txt):
            self.tui.controller.action("gcode {} 'G90'".format(locator),
                                       cmd_cb)
            self.tui.controller.action(
                "gcode {} 'G1 X{}'".format(locator, txt), cmd_cb)

        edit = CB_Edit("Move to ABS X (mm): ", "0", None, edit_cb, NUMERICALS)
        self.walker.append(AttrMap(edit, None, focus_map='selected'))

        def edit_cb(txt):
            self.tui.controller.action("gcode {} 'G90'".format(locator),
                                       cmd_cb)
            self.tui.controller.action(
                "gcode {} 'G1 Y{}'".format(locator, txt), cmd_cb)

        edit = CB_Edit("Move to ABS Y (mm): ", "0", None, edit_cb, NUMERICALS)
        self.walker.append(AttrMap(edit, None, focus_map='selected'))

        def edit_cb(txt):
            self.tui.controller.action("gcode {} 'G90'".format(locator),
                                       cmd_cb)
            self.tui.controller.action(
                "gcode {} 'G1 Z{}'".format(locator, txt), cmd_cb)

        edit = CB_Edit("Move to ABS Z (mm): ", "0", None, edit_cb, NUMERICALS)
        self.walker.append(AttrMap(edit, None, focus_map='selected'))

        def edit_cb(txt):
            self.tui.controller.action(
                "gcode {} 'G1 F{}'".format(locator, txt), cmd_cb)

        edit = CB_Edit("Set Feedrate mm/min: ", "", None, edit_cb, NUMERICALS)
        self.walker.append(AttrMap(edit, None, focus_map='selected'))

        def edit_cb(txt):
            self.tui.controller.action(
                "gcode {} 'M104 S{}'".format(locator, txt), cmd_cb)

        edit = CB_Edit("Set Extruder Temperature °C: ", "0", None, edit_cb,
                       NUMERICALS)
        self.walker.append(AttrMap(edit, None, focus_map='selected'))

        def edit_cb(txt):
            self.tui.controller.action(
                "gcode {} 'M140 S{}'".format(locator, txt), cmd_cb)

        edit = CB_Edit("Set Bed Temperature °C: ", "0", None, edit_cb,
                       NUMERICALS)
        self.walker.append(AttrMap(edit, None, focus_map='selected'))

        button = Button("[L] Load filament (G1 E100 F300)")

        def button_cb(button, locator):
            self.tui.controller.action("gcode {} 'M83'".format(locator),
                                       cmd_cb)
            self.tui.controller.action(
                "gcode {} 'G1 E100 F300'".format(locator), cmd_cb)

        urwid.connect_signal(button, 'click', button_cb, locator)
        self.walker.append(AttrMap(button, None, focus_map='selected'))
        self.add_hotkey('L',
                        partial(button_cb, button, locator),
                        "load",
                        omit_header=True)

        button = Button("[U] Unload filament (G1 E-100 F2000)")

        def button_cb(button, locator):
            self.tui.controller.action("gcode {} 'M83'".format(locator),
                                       cmd_cb)
            self.tui.controller.action(
                "gcode {} 'G1 E-100 F2000'".format(locator), cmd_cb)

        urwid.connect_signal(button, 'click', button_cb, locator)
        self.walker.append(AttrMap(button, None, focus_map='selected'))
        self.add_hotkey('U',
                        partial(button_cb, button, locator),
                        "unload",
                        omit_header=True)

        button = Button("[r] Release steppers (M18)")

        def button_cb(button, locator):
            self.tui.controller.action("gcode {} 'M18'".format(locator),
                                       cmd_cb)

        urwid.connect_signal(button, 'click', button_cb, locator)
        self.walker.append(AttrMap(button, None, focus_map='selected'))
        self.add_hotkey('r',
                        partial(button_cb, button, locator),
                        "release",
                        omit_header=True)

        self.walker.append(Divider())

        def enter_cb(edit, txt):
            if edit.hjkl_active:
                edit.hjkl_active = False
                edit.set_edit_text("[enter] to activate / deactivate")
            else:
                edit.hjkl_active = True
                edit.set_edit_text("")
                self.footer.set_text("Use keys 'hjklaz' to move printer.")

        def edit_cb(edit, txt):
            if not edit.hjkl_active: return
            key = txt[-1]
            m = {'h': "X-", 'l': "X", 'j': "Y-", 'k': "Y", 'a': "Z", 'z': "Z-"}
            if key not in m:
                self.footer.set_text(
                    "key '{}' not handled. Please use keys 'hjklaz' to move printer."
                    .format(key))
                return
            edit.set_edit_text("{}".format(m[key]))
            increment = 10
            c = "gcode {} 'G1 ".format(locator) + m[key] + "{}'".format(
                increment)
            self.tui.controller.action("gcode {} 'G91'".format(locator),
                                       cmd_cb)
            self.tui.controller.action(c, cmd_cb)

            #self.tui.controller.action("gcode {} 'G1 F{}'".format(locator, txt), cmd_cb)

        edit = CB_Edit("VI Move: ", "[enter] to activate", edit_cb, enter_cb,
                       [i for i in "hjklaz"])
        edit.type_cb = partial(edit_cb,
                               edit)  ##hack to solve cyclic dependency
        edit.enter_cb = partial(enter_cb,
                                edit)  ##hack to solve cyclic dependency
        edit.hjkl_active = False
        self.walker.append(AttrMap(edit, None, focus_map='selected'))
Esempio n. 13
0
 def __init__(self, label, on_press=None, user_data=None):
     Button.__init__(self, label, on_press, user_data)
     self._w = self._label
Esempio n. 14
0
    def build_widgets(self):
        self.deploy_view = DeployView(self.display_controller,
                                      self.placement_controller,
                                      self.placement_view)

        def not_conflicted_p(cc):
            state, _, _ = self.placement_controller.get_charm_state(cc)
            return state != CharmState.CONFLICTED

        actions = [(not_conflicted_p, "Choose Machine",
                    self.placement_view.do_show_machine_chooser)]
        subordinate_actions = [(not_conflicted_p, "Add",
                                self.do_place_subordinate)]
        self.required_services_list = ServicesList(self.placement_controller,
                                                   actions,
                                                   subordinate_actions,
                                                   ignore_assigned=True,
                                                   ignore_deployed=True,
                                                   show_type='required',
                                                   show_constraints=True,
                                                   title="Required Services")
        self.additional_services_list = ServicesList(self.placement_controller,
                                                     actions,
                                                     subordinate_actions,
                                                     ignore_assigned=True,
                                                     show_type='non-required',
                                                     show_constraints=True,
                                                     title="Additional "
                                                     "Services")

        autoplace_func = self.placement_view.do_autoplace
        self.autoplace_button = AttrMap(
            Button("Auto-place Remaining Services", on_press=autoplace_func),
            'button_secondary', 'button_secondary focus')

        clear_all_func = self.placement_view.do_clear_all
        self.clear_all_button = AttrMap(
            Button("Clear all Placements", on_press=clear_all_func),
            'button_secondary', 'button_secondary focus')

        self.required_services_pile = Pile(
            [self.required_services_list,
             Divider()])
        self.additional_services_pile = Pile(
            [self.additional_services_list,
             Divider()])

        self.top_buttons = []
        self.top_button_grid = GridFlow(self.top_buttons, 36, 1, 0, 'center')

        pl = [
            Text(('subheading', "Services"), align='center'),
            Divider(), self.top_button_grid,
            Divider(), self.deploy_view,
            Divider(), self.required_services_pile,
            Divider(), self.additional_services_pile
        ]

        self.main_pile = Pile(pl)

        return self.main_pile
Esempio n. 15
0
 def __init__(self, transport):
     self.transport = transport
     label = 'Tempo {0}BPM'.format(self.transport.tempo)
     Button.__init__(self, label)
     self._w = self._label
Esempio n. 16
0
    def __init__(self, label, on_press=None, user_data=None):
        self.widget = Text(label)
        self.widget = AttrMap(self.widget, 'footer')
        self._hidden_btn = Button(label, on_press, user_data)

        super().__init__(self.widget)
Esempio n. 17
0
 def __init__(self, transport):
     self.transport = transport
     label = 'Tempo {0}BPM'.format(self.transport.tempo)
     Button.__init__(self, label)
     self._w = self._label