Example #1
0
    def __init__(self):
        self.filter_tags = []
        self.current_selected = 0

        self.listbox = urwid.ListBox(urwid.SimpleFocusListWalker([]))
        self._refresh()

        self.menu = urwid.BoxAdapter(self.listbox,
                                     height=len(self.listbox.body))
        self.menu = urwid.AttrMap(self.menu, 'options', focus_map)

        line = urwid.Divider(u'\N{LOWER ONE QUARTER BLOCK}')
        header = urwid.Pile([
            urwid.AttrMap(urwid.Text([u"\n  ", 'Main Menu']), 'heading'),
            urwid.AttrMap(line, 'line'),
            urwid.Divider()
        ])

        search = urwid.BoxAdapter(self.search_box(), height=9)
        widget_list = [header, search, self.menu]

        self.alert = None
        new_files = getNewScans()
        if len(new_files):
            alert = urwid.BoxAdapter(self.alert_box(new_files), height=3)
            widget_list.insert(2, alert)

        self.menu = self._menu(widget_list)

        super(DocumentBrowseWindow, self).__init__(MenuButton(['test'], None))
Example #2
0
    def screenUI(self):
        self.text0 = urwid.Text(u'filler是一个在包装的组件上下留空隙的组件')
        self.text1 = urwid.Text(u'下面两个text包裹在同一个filler组件中')
        self.text2 = urwid.Text(u'')
        self.text2 = urwid.AttrWrap(self.text2, 'header')
        self.text3 = urwid.Text(u'')
        self.text3 = urwid.AttrWrap(self.text3, 'header')
        self.list_inner = [self.text2, urwid.Divider(' '), self.text3]
        self.inner_list_box = urwid.ListBox(
            urwid.SimpleListWalker(self.list_inner))
        self.inner_list_box = urwid.BoxAdapter(self.inner_list_box, 3)
        self.filler = urwid.Filler(self.inner_list_box,
                                   valign='middle',
                                   top=1,
                                   bottom=2)
        self.filler = urwid.AttrWrap(self.filler, 'padding')
        self.inner_box = urwid.BoxAdapter(self.filler, 20)

        self.text2.set_text(u"该filler的边距模式为%s" %
                            self.filler.original_widget.valign_type)
        self.text3.set_text(u"该filler包装组件后预设的头尾的填充行为%s %s" %
                            (self.filler.original_widget.top,
                             self.filler.original_widget.bottom))

        self.list_content = [
            self.text0, self.text1,
            urwid.Divider(' '), self.inner_box
        ]

        listbox = urwid.ListBox(urwid.SimpleListWalker(self.list_content))
        return listbox
def submenu(job_id):
    # return urwid.Text("Overlay !!! \n")))

    back = urwid.Button("Back")
    cancel = urwid.Button(f"/!\\ Cancel job {job_id}")
    body = [
        back,
        cancel
    ]

    urwid.connect_signal(back, "click", close_submenu)
    urwid.connect_signal(cancel, "click", cancel_job, job_id)

    return urwid.LineBox(
        urwid.Filler(
            urwid.Pile(
                [
                    urwid.BoxAdapter(
                        urwid.ListBox(urwid.SimpleFocusListWalker(body)), height=2,
                    ),
                    # urwid.Text(get_job_info(job_id)),
                ]
            )
        )
    )

    return urwid.LineBox(
        urwid.Filler(
            urwid.BoxAdapter(
                urwid.ListBox(urwid.SimpleFocusListWalker(body)), height=10,
            )
        )
    )
    def render_page(self):

        w = urwid.Pile([
            urwid.Padding(urwid.Text(self.text), left=1, right=1),
            urwid.Divider(),
            urwid.Padding(urwid.Columns([("fixed", 20, self.enable_password),
                                         ("fixed", 22, self.common_password)]),
                          left=1),
            urwid.Divider(),
            urwid.Padding(urwid.Columns(
                [("weight", 3,
                  urwid.Pile([
                      self.pending_table_title,
                      urwid.BoxAdapter(
                          urwid.Frame(self.pending_table,
                                      header=self.pending_table_headings), 10),
                  ])),
                 ("weight", 1,
                  urwid.Pile([
                      self.sshok_table_title,
                      urwid.BoxAdapter(
                          urwid.Frame(self.sshok_table,
                                      header=self.sshok_table_headings), 10),
                  ]))],
                dividechars=1),
                          left=1), self.check_btn
        ])

        w.focus_position = 5  # the Check button widget

        return urwid.AttrMap(urwid.Filler(w, valign='top', top=1),
                             "active_step")
 def _build_welcome_form(self) -> urwid.Overlay:
     login = self._make_btn('Login', lambda: self.to_login_form())
     signup = self._make_btn('Signup', lambda: self.to_signup_form())
     quit = self._make_btn('Quit', lambda: self.quit())
     button_list = [login, signup, quit]
     list_box = urwid.ListBox(urwid.SimpleFocusListWalker(button_list))
     layout = urwid.Filler(
         # Row Start
         urwid.Pile([
             urwid.Padding(urwid.Text('Welcome to Text Editor Online!',
                                      align='center'),
                           align='center'),
             urwid.Divider(),
             urwid.Divider(),
             # Column Start
             urwid.Columns([
                 urwid.BoxAdapter(urwid.SolidFill(), height=1),
                 (11, urwid.BoxAdapter(list_box,
                                       height=3)),  # (11, ...) is width
                 urwid.BoxAdapter(urwid.SolidFill(), height=1),
             ]),
             # Column End
         ])
         # Row End
     )
     return self._wrap_in_overlay(layout)
Example #6
0
    def _init_window(self):
        header = 'ScapyShark v{version}'.format(version=version)
        self._header_box = urwid.BoxAdapter(
            urwid.AttrMap(urwid.Filler(urwid.Text(header, align='center')),
                          'header'), 1)
        self._footer_box = urwid.BoxAdapter(
            urwid.AttrMap(
                urwid.Filler(urwid.Text('No Packets Yet.', align='right')),
                'header'), 1)

        # Body
        self._top_box = ScrollingListBox(
            rolling_packet_buffer=self._args.rolling_packet_buffer)
        self._middle_box = urwid.ListBox(
            urwid.SimpleFocusListWalker([urwid.Text('')]))
        self._bottom_box = urwid.ListBox(
            urwid.SimpleFocusListWalker([urwid.Text('')]))

        divider = (1, urwid.Filler(urwid.Divider('\u2500')))
        self._body_pile = urwid.Pile([
            self._top_box, divider, self._middle_box, divider, self._bottom_box
        ],
                                     focus_item=self._top_box)

        # Overarching Frame
        self.frame = urwid.Frame(self._body_pile,
                                 header=self._header_box,
                                 footer=self._footer_box,
                                 focus_part='body')

        # The main loop
        self.loop = urwid.MainLoop(urwid.AttrMap(self.frame, 'frame'),
                                   unhandled_input=self.unhandled_input,
                                   palette=palette)
Example #7
0
    def screenUI(self):
        self.text0 = urwid.Text(u'GridFlow 是一个由多个cell组成的流组件,其中每个组件都是流组件,宽度相同')
        self.text1 = urwid.Text(u"对于该组件的cell序列,grid会先横向排列,当一行占满时才会使用第二行")
        self.text2 = urwid.Text(u'你可以拖动鼠标变化控制台大小查看显示效果')
        self.text3 = urwid.Text(u'状态信息看这里')
        button_list = []
        for i in range(0, 10):
            button = MyButton(u"button %s" % i, self.callback_button)
            button_list.append(button)
        self.button_listbox = urwid.ListBox(
            urwid.SimpleListWalker(button_list))
        self.button_listbox = urwid.AttrWrap(self.button_listbox, 'header')
        self.button_listbox_flo = urwid.BoxAdapter(self.button_listbox, 10)

        edit_list = []
        for i in range(0, 10):
            edit = urwid.Edit((u'edit%s' % i).ljust(12))
            urwid.connect_signal(edit, 'change', self.callback_edit, i)
            edit_list.append(edit)
        self.edit_listbox = urwid.ListBox(urwid.SimpleListWalker(edit_list))
        self.edit_listbox = urwid.AttrWrap(self.edit_listbox, 'editbx',
                                           'editfc')
        self.edit_listbox_flo = urwid.BoxAdapter(self.edit_listbox, 10)

        text_list = []
        for i in range(0, 10):
            text = urwid.Text(u'text %s' % i)
            text_list.append(text)
        text_listbox = urwid.ListBox(urwid.SimpleListWalker(text_list))
        text_listbox = urwid.AttrWrap(text_listbox, 'padding')
        text_listbox_flo = urwid.BoxAdapter(text_listbox, 10)

        radiobutton_list = []
        self.rgroup = []
        for i in range(0, 10):
            radiobutton = urwid.RadioButton(self.rgroup, u'radiobutton %s' % i,
                                            False, self.callback_radiobutton,
                                            i)
            radiobutton_list.append(radiobutton)
        self.radiobutton_listbox = urwid.ListBox(
            urwid.SimpleListWalker(radiobutton_list))
        self.radiobutton_listbox_flo = urwid.BoxAdapter(
            self.radiobutton_listbox, 10)

        self.move_button = MyButton(u"点击将焦点设置到第一个组件的起始位置",
                                    self.callback_movebutton)

        grid_list = [
            self.button_listbox_flo, text_listbox_flo, self.edit_listbox_flo,
            self.radiobutton_listbox_flo
        ]

        self.gridflow = urwid.GridFlow(grid_list, 50, 2, 3, 'center')
        listbox_content = [
            self.text0, self.text1, self.text2, blank, self.gridflow,
            self.text3, self.move_button
        ]

        return urwid.ListBox(urwid.SimpleListWalker(listbox_content))
    def flowtext(self):
        text = []

        title = urwid.Text("Flow details")
        title = urwid.Padding(title, align="left", width=("relative", 100))
        title = urwid.AttrWrap(title, "heading")
        text.append(title)

        if self.flow.response:
            c = self.flow.response.cert
            if c:
                text.append(urwid.Text([("head", "Server Certificate:")]))
                parts = [
                    ["Type", "%s, %s bits" % c.keyinfo],
                    ["SHA1 digest", c.digest("sha1")],
                    ["Valid to", str(c.notafter)],
                    ["Valid from", str(c.notbefore)],
                    ["Serial", str(c.serial)],
                ]

                parts.append([
                    "Subject",
                    urwid.BoxAdapter(
                        urwid.ListBox(
                            common.format_keyvals(c.subject,
                                                  key="highlight",
                                                  val="text")), len(c.subject))
                ])

                parts.append([
                    "Issuer",
                    urwid.BoxAdapter(
                        urwid.ListBox(
                            common.format_keyvals(c.issuer,
                                                  key="highlight",
                                                  val="text")), len(c.issuer))
                ])

                if c.altnames:
                    parts.append(["Alt names", ", ".join(c.altnames)])
                text.extend(
                    common.format_keyvals(parts,
                                          key="key",
                                          val="text",
                                          indent=4))

        if self.flow.request.client_conn:
            text.append(urwid.Text([("head", "Client Connection:")]))
            cc = self.flow.request.client_conn
            parts = [
                ["Address", "%s:%s" % tuple(cc.address)],
                ["Requests", "%s" % cc.requestcount],
                ["Closed", "%s" % cc.close],
            ]
            text.extend(
                common.format_keyvals(parts, key="key", val="text", indent=4))

        return text
Example #9
0
    def main(self):
        # this program use frame as the topmost widget, header and footer
        # play roles of the top and bottom lines of the frame
        self.children = []

        # load the modules will be used,
        # every module is one child
        # you can extend the num of modules by modify modules.__init__.py file
        for clsobj in modules.__all__[1:]:
            modobj = clsobj(
                self, LanguageType.ENGLISH)  # default language is chinese
            self.children.append(modobj)

        if len(self.children) == 0:
            log.debug('there is no available modules, dsMenu exit')
            sys.exit(1)

        # build list of choices
        self.choices = [m.name for m in self.children]

        # build list of visible choices
        self.visiblechoices = []
        for child, choice in zip(self.children, self.choices):
            if child.visible:
                self.visiblechoices.append(choice)

        # finish menu box
        self.menuitems = self.menu(self.language_field['menu_label'],
                                   self.visiblechoices)
        menufill = urwid.Filler(self.menuitems, 'top', 40)
        self.menubox = urwid.BoxAdapter(menufill, 40)

        # finish child box
        self.child = self.children[0]  # use DaSone user modules default
        self.childpage = self.child.screenUI()
        self.child.screen = self.childpage
        self.childfill = urwid.Filler(self.childpage, 'top', 22)
        self.childbox = urwid.BoxAdapter(self.childfill, 22)
        # create col widget contain menubox and child box
        self.cols = urwid.Columns(
            [('fixed', 20,
              urwid.Pile(
                  [urwid.AttrMap(self.menubox, 'body'),
                   urwid.Divider(" ")])),
             ('weight', 3, urwid.Pile([blank, self.childbox, blank]))], 1)

        # top second widget -- Listbox
        self.listwalker = urwid.SimpleListWalker([self.cols])
        self.listbox = urwid.ListBox(self.listwalker)

        #topmost widget --Frame
        self.frame = urwid.Frame(urwid.AttrMap(self.listbox, 'body'),
                                 header=self.header,
                                 footer=self.footer)

        # begin mainloop
        self.mainloop.widget = self.frame
Example #10
0
    def __init__(self, settings, greet, font):
        self.group = []
        self.gui_items = urwid.SimpleListWalker([])
        self.cli_items = urwid.SimpleListWalker([])

        #header = urwid.AttrMap(urwid.Text('selected:'), 'head')
        self.gui_listbox = urwid.ListBox(self.gui_items)
        #add widget for consolekit checkbox
        self.cli_listbox = urwid.ListBox(self.cli_items)
        #add widget for fbterm checkbox and settings
        self.fb_check = urwid.CheckBox("Enable background image", state=False)
        self.ck_check = urwid.CheckBox("Enable Consolekit", state=False)

        cli_box = urwid.Pile([
            urwid.BoxAdapter(self.cli_listbox, 15),
            urwid.AttrMap(self.fb_check, 'body', 'body')
        ])
        gui_box = urwid.Pile([
            urwid.BoxAdapter(self.gui_listbox, 15),
            urwid.AttrMap(self.ck_check, 'body', 'body')
        ])

        tabs = TabColumns([
            urwid.AttrWrap(SelText("GUI"), 'tab active', 'focus'),
            urwid.AttrWrap(SelText("CLI"), 'body', 'focus')
        ], [urwid.Filler(gui_box),
            urwid.Filler(cli_box)], 'Sessions')

        ulabel = urwid.Text("Username")
        plabel = urwid.Text("Password")
        utext = urwid.Edit()
        ptext = urwid.Edit(mask="*")
        ustuff = urwid.Columns(
            [urwid.AttrWrap(ulabel, 'uname'),
             urwid.AttrWrap(utext, 'uname')])
        pstuff = urwid.Columns(
            [urwid.AttrWrap(plabel, 'pw'),
             urwid.AttrWrap(ptext, 'pw')])
        ffont = font()
        banner = urwid.BigText(greet, ffont)
        banner = urwid.AttrWrap(banner, 'banner')
        banner = urwid.Padding(banner, 'left', width='clip')
        banner = urwid.Filler(banner, height=ffont.height)

        #banner = urwid.Padding(banner,align='center')
        login_details = urwid.Pile([
            ustuff, pstuff,
            urwid.AttrWrap(urwid.Text("Press enter to log in"), 'body', 'body')
        ])
        #sessions_box = urwid.Pile([urwid.Text("Sessions"),
        #							urwid.BoxAdapter(listbox, 40)])
        self.__super.__init__(
            [banner,
             urwid.Columns([urwid.Filler(login_details), tabs])])
        self.username = utext
        self.password = ptext
        urwid.connect_signal(utext, 'change', self.refresh_sessions, settings)
Example #11
0
    def edit_bridge(self, button):
        if len(self.bridge_list) == 0:
            dialog.display_dialog(self,
                                  urwid.Text("No bridge could be edited"),
                                  "Error Operation")
            return
        # back button
        self.back_button = widget.Button('BACK', self.back_screen)
        back_button_line = urwid.GridFlow([self.back_button], 8, 0, 0, 'left')

        ## draw a new screen with two lineboxes which used to
        ## configure net info and eths for bond
        # linebox 1
        net_info_listbox = modulehelper.ModuleHelper.screenUI(
            self, [], self.fields, self.defaults, button_visible=False)
        net_info_linebox = urwid.LineBox(net_info_listbox, "Network Address")
        # store edit fields for visiting conveniently
        self.edits_tmp = self.edits

        # linebox 2
        bond_for_bridge = widget.ColContainTwoListBox(
            "Bond inuse", "Bond usable", self.active_bridge_bond_inuse,
            self.active_bridge_bond_usable, self.remove_bond, self.add_bond)
        bond_for_bridge_listbox = modulehelper.ModuleHelper.screenUI(
            self, [bond_for_bridge], [], {},
            button_visible=False,
            iblank=False)
        bond_for_bridge_linebox = urwid.LineBox(bond_for_bridge_listbox,
                                                "Bond Interface")

        # new screen
        self.bond_for_bridge_height = max([
            len(self.active_bridge_bond_inuse),
            len(self.active_bridge_bond_usable)
        ])
        screen_new_header = [
            back_button_line,
            urwid.BoxAdapter(net_info_linebox, 7), blank,
            urwid.BoxAdapter(bond_for_bridge_linebox,
                             self.bond_for_bridge_height + 7)
        ]
        screen_new = modulehelper.ModuleHelper.screenUI(
            self,
            screen_new_header, [], {},
            button_label=["DEL", "APPLY"],
            button_callback=[self.del_bridge_dialog, self.apply])
        self.edits = self.edits_tmp

        # redraw mod screen
        self.parent.draw_child_screen(screen_new)
        self.parent.cols.set_focus(1)
        self.edit_open = True
Example #12
0
    def __init__(self, parent, mind):
        header = SelectableListBox(urwid.SimpleListWalker([urwid.Text("")]))

        self.bodies = {
            b: globals()[f"{b}Frame"](self, mind)
            for b in ("Status", "Room", "Inventory", "Equipment", "Map",
                      "Chat")
        }
        self.active_body = self.bodies["Status"]
        screen_btns = [
            urwid.LineBox(
                urwid.AttrMap(urwid.Text("{:^10}".format(s), align="center"),
                              None,
                              focus_map="line")) for s in self.bodies
        ]
        footer = FrameColumns(self, screen_btns)

        super(GameFrame,
              self).__init__(parent,
                             mind,
                             urwid.LineBox(self.active_body, title="Status"),
                             header=urwid.LineBox(urwid.BoxAdapter(header, 12),
                                                  title="Players"),
                             footer=footer,
                             focus_part="header")
        self.header_widget = self.header.original_widget.box_widget
Example #13
0
def uiEditor(command):
    edit_buttons = [
        urwid.Divider(),
        customButton('Save', saveEdit),
        urwid.Divider(),
        customButton('Cancel', cancelEdit),
        urwid.Divider(),
    ]

    app_state['editListBox'] = urwid.ListBox([
        urwid.AttrMap(urwid.Text('Edit'), 'header'),
        urwid.Divider(),
        urwid.Columns([
            createEditText('Name', command),
            createEditText('Command', command),
        ]),
        createEditText('Description', command, 2),
        urwid.Columns([
            createEditText('Tags', command),
            urwid.Pile([
                urwid.Divider(),
                urwid.AttrMap(urwid.Columns(edit_buttons), 'editButtons')
            ])
        ])
    ])
    return urwid.BoxAdapter(urwid.AttrMap(app_state['editListBox'], 'editor'),
                            12)
Example #14
0
    def launch_witch_readonly(self, data):
        self.witch_tab.editor.original_widget = urwid.BoxAdapter(
                urwid.Filler(urwid.Text(data['code'])),
                self.ui_loop.screen_size[1] // 2)
        self.witch_tab.refresh(data, self.scope)

        self.switch_tab(self.tabs.get('f2'))
Example #15
0
 def makeFrame(self, data):
     """
     Returns a new frame that is formatted correctly with respect to the window's dimensions.
     :param data: tuple of (answers, question_title, question_desc, question_stats, question_url)
     :return: a new urwid.Frame object
     """
     answers, question_title, question_desc, question_stats, question_url = data
     self.data = data
     self.question_desc = question_desc
     self.url = question_url
     self.answer_text = AnswerText(answers)
     self.screenHeight, screenWidth = subprocess.check_output(
         ['stty', 'size']).split()
     self.question_text = urwid.BoxAdapter(
         QuestionDescription(question_desc),
         int(max(1, (int(self.screenHeight) - 9) / 2)))
     answer_frame = urwid.Frame(
         header=urwid.Pile([
             header_for_display,
             QuestionTitle(question_title), self.question_text,
             QuestionStats(question_stats),
             urwid.Divider('-')
         ]),
         body=self.answer_text,
         footer=urwid.Pile([
             QuestionURL(question_url),
             UnicodeText(
                 u'\u2191: previous answer, \u2193: next answer, o: open in browser, \u2190: back'
             )
         ]))
     return answer_frame
Example #16
0
 def refresh(self, keep: gkeepapi.Keep):
     self.w_grid.contents = [(urwid.BoxAdapter(widget.note.Note(n),
                                               self.size[1]),
                              self.w_grid.options())
                             for n in self.query.filter(keep)]
     if self.w_grid.contents:
         self.w_grid.focus_position = 0
Example #17
0
    def build_mainbody_widgets(self):
        # Build the left-most group selector list box
        groupwalker = urwid.SimpleListWalker(
            [SelectGroupButton(name) for _, name in self.readgroups])
        urwid.connect_signal(
            groupwalker, 'modified',
            partial(self.on_group_selection_changed, groupwalker))

        group_selector = (urwid.Padding(urwid.Filler(urwid.BoxAdapter(
            urwid.ListBox(groupwalker), 7),
                                                     'top',
                                                     top=1),
                                        left=1))

        default_group_title = self.readgroups[0][1]
        left_widget, left_elements = self.build_read_stats_widget(
            default_group_title)
        right_widget, right_elements = self.build_read_stats_widget(
            'All Reads')

        stats_columns = urwid.Columns([
            ('fixed', 16, group_selector),
            left_widget,
            right_widget,
        ])

        self.readstats_left = left_elements
        self.readstats_right = right_elements

        self.readstatsbox_left = left_widget

        return urwid.Filler(stats_columns, 'top', height=('relative', 100))
Example #18
0
 def show_pop_up(self, to_show: Any, style: str) -> None:
     border_lines = dict(tlcorner='▛',
                         tline='▀',
                         trcorner='▜',
                         rline='▐',
                         lline='▌',
                         blcorner='▙',
                         bline='▄',
                         brcorner='▟')
     text = urwid.Text(to_show.title, align='center')
     title_map = urwid.AttrMap(urwid.Filler(text), style)
     title_box_adapter = urwid.BoxAdapter(title_map, height=1)
     title_box = urwid.LineBox(title_box_adapter,
                               tlcorner='▄',
                               tline='▄',
                               trcorner='▄',
                               rline='',
                               lline='',
                               blcorner='',
                               bline='',
                               brcorner='')
     title = urwid.AttrMap(title_box, 'popup_border')
     content = urwid.LineBox(to_show, **border_lines)
     self.loop.widget = urwid.Overlay(
         urwid.AttrMap(urwid.Frame(header=title, body=content),
                       'popup_border'),
         self.view,
         align='center',
         valign='middle',
         # +2 to both of the following, due to LineBox
         # +2 to height, due to title enhancement
         width=to_show.width + 2,
         height=to_show.height + 4,
     )
Example #19
0
    def __init__(self):
        self.screen = urwid.raw_display.Screen()
        self.footer = urwid.AttrWrap(urwid.Text(self.footer_text), 'foot')
        self.header = urwid.Text("Aursec - TUI")
        self.settings = Settings(self)
        self.col_desc = urwid.AttrWrap(
            urwid.Columns([('fixed', 10, urwid.Text("Nr")),
                           ('fixed', 10, urwid.Text("Hash")),
                           ('fixed', 46, urwid.Text("Miner")),
                           ('fixed', 25, urwid.Text("Time")),
                           urwid.Text("Transactions")]), 'bold')
        self.list = items()
        self.body = urwid.BoxAdapter(urwid.ListBox(self.list),
                                     height=self.screen.get_cols_rows()[True] -
                                     4)
        self.layout = urwid.Pile([self.settings, self.col_desc, self.body])
        self.old_show_all = self.settings.show_all.state
        self.old_transactions = self.settings.transactions.state

        self.view = urwid.Frame(urwid.AttrWrap(
            urwid.Filler(self.layout, valign='top'), 'body'),
                                header=urwid.AttrWrap(self.header, 'head'),
                                footer=self.footer)
        self.blocks = blocks.Blocks()
        self.curr_block = self.blocks.get_curr_block()
        self.refresh()
        self.thread = Thread(target=self.blocks.run, args=(self.curr_block, ))
        self.thread.start()
Example #20
0
    def add_bond(self, button):
        if len(self.bridge_bond_inuse_tmp) == 0 and len(
                self.bridge_bond_usable_tmp) == 0:
            self.bridge_bond_inuse_tmp = copy.deepcopy(
                self.active_bridge_bond_inuse)
            self.bridge_bond_usable_tmp = copy.deepcopy(
                self.active_bridge_bond_usable)

        button_label = button.get_label()
        if len(self.bridge_bond_inuse_tmp) > 0:
            self.bridge_bond_usable_tmp.append(self.bridge_bond_inuse_tmp[0])
        self.bridge_bond_usable_tmp.remove(button_label)
        self.bridge_bond_inuse_tmp = [button_label]
        self.bridge_bond_usable_tmp = sorted(self.bridge_bond_usable_tmp)

        # display new dialog
        eths_bond_dialog = widget.ColContainTwoListBox(
            'Bond inuse', 'Bond usable', self.bridge_bond_inuse_tmp,
            self.bridge_bond_usable_tmp, self.remove_bond, self.add_bond,
            button.get_label())
        eths_bond_dialog_ltb = urwid.ListBox(
            urwid.SimpleListWalker([eths_bond_dialog]))
        eths_bond_dialog_lnb = urwid.LineBox(eths_bond_dialog_ltb,
                                             "Bridge Device")
        self.listbox_content[3] = urwid.BoxAdapter(
            eths_bond_dialog_lnb, self.bond_for_bridge_height + 7)
        self.parent.refresh_screen()
Example #21
0
    def _get_events(self, day):
        """get all events on day, return a DateListBox of `U_Event()`s

        :type day: datetime.date
        """
        event_list = []
        date_header = DateHeader(
            day=day,
            dateformat=self._conf['locale']['longdateformat'],
            conf=self._conf,
        )
        event_list.append(urwid.AttrMap(date_header, 'date'))
        self.events = sorted(self._collection.get_events_on(day))
        event_list.extend([
            urwid.AttrMap(
                U_Event(event,
                        conf=self._conf,
                        this_date=day,
                        delete_status=self.delete_status),
                'calendar ' + event.calendar, 'reveal focus')
            for event in self.events
        ])
        return urwid.BoxAdapter(
            DateListBox(urwid.SimpleFocusListWalker(event_list), date=day),
            (len(event_list) + 1) if self.events else 1)
Example #22
0
    def make_comment_frame(self):
        """
        Returns a new frame that is formatted correctly with respect to the window's dimensions.
        :return: a new urwid.Frame object
        """
        self.screenHeight, screenWidth = subprocess.check_output(
            ['stty', 'size']).split()
        self.question_text = urwid.BoxAdapter(
            QuestionDescription(self.question_desc),
            int(max(1, (int(self.screenHeight) - 9) / 2)))

        comment_frame = urwid.Frame(
            header=urwid.Pile([
                display_header,
                QuestionTitle(self.question_title), self.question_text,
                QuestionStats(self.question_stats),
                urwid.Divider('-')
            ]),
            body=self.answer_text,
            footer=urwid.Pile([
                QuestionURL(self.url),
                UnicodeText(
                    'o: open in browser, v: back to answer, \u2190: back, q: quit'
                )
            ]))
        return comment_frame
Example #23
0
    def __init__(self, label, header, items, selected_item, height, enabled):
        self.__label = urwid.Text(label)
        self.__label_attrmap = urwid.AttrMap(self.__label, self._label_attr)
        self.__header = urwid.Text(header)
        self.__header_attrmap = urwid.AttrMap(self.__header, self._header_attr)
        self.__items = items
        self.__walker = urwid.SimpleListWalker(self.__items)
        self.__list = urwid.ListBox(self.__walker)
        #        self.__list_linebox = urwid.LineBox(self.__list)

        if selected_item:
            self.set_focus(items.index(selected_item))

        def __on_item_change():
            widget, self._position = self.__list.get_focus()
            self._update_scrollbar()
            urwid.emit_signal(self, "changed", widget)

        urwid.connect_signal(self.__walker, 'modified', __on_item_change)

        self.__box = urwid.BoxAdapter(self.__list, height)
        self.__box_attrmap = urwid.AttrMap(self.__box, self._table_attr)

        self.__position_label = urwid.Text("", align="right")
        self.__position_label_attrmap = urwid.AttrMap(self.__position_label,
                                                      self._label_attr)

        self.__pile = urwid.Pile([
            self.__label_attrmap, self.__header_attrmap, self.__box,
            self.__position_label_attrmap
        ])

        self._update_scrollbar()

        super(TableWidget, self).__init__(self.__pile)
    def render_page(self):

        table_headings = [(3, urwid.Text('Sel')), (4, urwid.Text('Role')),
                          (12, urwid.Text('Hostname')),
                          (4, urwid.Text('CPU ')), (3, urwid.Text('RAM')),
                          (3, urwid.Text('NIC')), (3, urwid.Text('HDD')),
                          (3, urwid.Text('SSD')), (4, urwid.Text('Size')),
                          (8, urwid.Text('Status'))]

        table_header = urwid.Columns(table_headings, 1)

        self.table = urwid.ListBox(self.table_body)

        results = urwid.Padding(urwid.BoxAdapter(
            urwid.LineBox(urwid.Frame(self.table,
                                      header=table_header,
                                      footer=self.table_footer),
                          title="Host Configuration"), 13),
                                left=1,
                                right=1)

        return urwid.AttrMap(
            urwid.Filler(
                urwid.Pile([
                    urwid.Padding(urwid.Text(self.text), left=2, right=2),
                    # urwid.Divider(),
                    self.probe_btn,
                    urwid.Divider(),
                    results,
                    # urwid.Divider(),
                    self.next_btn
                ]),
                valign='top',
                top=1),
            'active_step')
Example #25
0
    def __init__(self, title, cred, tests, data):
        self.app = None
        self.tester = data["tester"]
        urn = cred["nodelist"][0][0] + ":" + str(cred["nodelist"][0][1]) + (
            "/" + (cred["database"]) if bool(cred["database"]) else "")

        self.data = {
            "title": title,
            "callback": data["callback"],
            "urn": urn,
            "num_tests": len(tests)
        }

        self.progress_text = urwid.Text(
            ('progress', '0/' + str(self.data["num_tests"])))
        running_display = urwid.Columns([
            (14, urwid.Text(('text', 'Running test'))), self.progress_text
        ])
        self.progress_bar = CustomProgressBar('progress', 'remaining', 0,
                                              self.data["num_tests"])
        self.text_running = urwid.Text(('text', ''))
        box = urwid.BoxAdapter(urwid.Filler(self.text_running, valign='top'),
                               2)
        pile = urwid.Pile([running_display, self.progress_bar, DIV, box])
        urwid.WidgetWrap.__init__(self, pile)
Example #26
0
 def __init__(self, value=0):
     text = urwid.Text("", align="center")
     box = urwid.Filler(text, valign="middle")
     super().__init__(urwid.BoxAdapter(box, 5), "tile-0")
     self._box = box
     self._text = text
     self.value = value
Example #27
0
    def __network_scan_list(self, _loop=object, _data=[False]):

        hidden_scan = _data[0]

        if hidden_scan:
            self.network_list = self.scanner.scan_hidden()
        else:
            self.network_list = self.scanner.scan()

        # If we didn't hit the counter of scans, we scan again
        if self.scan_times_current < self.scan_times:
            # We add count on current scans
            self.scan_times_current += 1

            # Sleep for a second
            time.sleep(2)

            # Scan again
            self.scan()

        else:
            # Reset scan loop
            #self.scan_times_current = 1

            terminal_cols, terminal_rows = urwid.raw_display.Screen(
            ).get_cols_rows()

            # Headers columns
            _headers = ["SSID", "%", "Sec", "MAC", "CH", "dBm"]
            _network_header = urwid.AttrMap(
                urwid.Columns([urwid.Text(c) for c in _headers]),
                "network_header")

            # clean hidden ssid for UI
            networks = self.network_list
            for bssid in networks.keys():
                __essid = networks[bssid][0]
                if '\\x00' in __essid or '?' in __essid or __essid == '':
                    __essid = '-HIDDEN-'
                networks[bssid][0] = __essid

            # Networks found
            _netlist = [
                SelectableRow(networks[bssid], self.__connect_network)
                for bssid in networks.keys()
            ]
            _netlist = urwid.ListBox(urwid.SimpleFocusListWalker(_netlist))

            pile = urwid.Pile([
                urwid.Text('Networks found:'),
                urwid.Divider('-'),
                _network_header,
                urwid.Divider('-'),
                urwid.BoxAdapter(_netlist, terminal_rows),
            ])

            widget = urwid.Filler(pile)
            widget = self.__get_container(widget)

            self.loop.widget = widget
Example #28
0
 def _setup_GUI(self):
     self.body = urwid.SimpleFocusListWalker([])
     listbox = urwid.ListBox(self.body)
     adapter = urwid.BoxAdapter(listbox, height=10)
     linebox = urwid.LineBox(adapter, title='Add Source')
     columns = urwid.Columns([(20, linebox)])
     super().__init__(columns)
Example #29
0
    def build(self):
        """
        Composes child views and components into a single object to be rendered.
        Uses a custom widget PositiveNegativeBarGraph that is a fork of the
        urwid BarGraph widget

        Parameters
        ----------
        None

        Returns
        -------
        None

        Raises
        ------
        None
        """
        header = HeaderComponent(f'{self.name.title()} Signal', 'h2')
        self.bg = PositiveNegativeBarGraph(['bg background', 'bg 1'])
        self.bg.set_bar_width(self.barWidth)
        body = urwid.BoxAdapter(self.bg, self.height)

        l = [header, body]
        w = urwid.Pile(l)
        b = urwid.LineBox(w)
        return b
Example #30
0
    def __init__(self, descriptionText, statText, **kwargs):
        # Room description widget
        self.description = urwid.Filler(urwid.Text(descriptionText),
                                        valign='middle',
                                        height='pack')

        # Stat display widget
        self._statText = urwid.Text(statText)

        # kwargs
        directions = kwargs['directions']
        actions = kwargs.pop('actions', None)
        gameOpts = kwargs.pop('gameOpts', None)
        self._controller = kwargs.pop('controller', None)

        # Menu stuff
        optionMenu = urwid.Pile([
            ActionButton(opt, self._controller.optionCallback)
            for opt in gameOpts
        ])
        self.walker = urwid.SimpleFocusListWalker([])
        cols = urwid.Columns(
            [('weight', 20, self.createDirectionMenu(directions)),
             ('weight', 40, self.createActionMenu(actions)),
             ('weight', 30, optionMenu)],
            dividechars=2)
        self.walker.append(cols)
        self.menu = urwid.BoxAdapter(urwid.ListBox(self.walker), 6)

        self.screen = urwid.Frame(self.description,
                                  header=self._statText,
                                  footer=self.menu,
                                  focus_part='footer')