示例#1
0
    def __init__(self):
        self.screen = Screen()
        self.screen.set_input_timeouts(max_wait=0)
        self.steps = GridFlow([], 20, 2, 1, 'left')
        self.progress = SimpleFocusListWalker([])
        self.log = SimpleFocusListWalker([])

        self.widget = AttrMap(
            LineBox(Pile([
                ('fixed', 6, AttrMap(Filler(self.steps), 'default')),
                ('fixed', 1, Filler(Divider('\u2500'))),
                ('fixed', 3, ListBox(self.progress)),
                AttrMap(LineBox(ListBox(self.log), title='Message log'),
                        'default')
            ]),
                    title='Indico 1.2 -> 2.0 migration'), 'global_frame')

        self.screen.register_palette(
            [('green', 'light green', ''), ('white', 'white', ''),
             ('red', 'dark red', ''), ('yellow', 'yellow', ''),
             ('progress_empty', 'black',
              'light gray'), ('progress_progress', 'light cyan', 'light gray'),
             ('progress_done', 'black', 'light cyan'),
             ('box', 'white', 'dark gray'), ('step_done', 'light green', ''),
             ('step_working', 'dark gray',
              ''), ('global_frame', 'light cyan',
                    ''), ('fill', 'light cyan', 'dark cyan'),
             ('done', 'white', 'dark green'), ('eta', 'yellow', 'dark gray')] +
            generate_urwid_palette(PALETTE))
示例#2
0
    def create_interface(self):
        self.screen = Screen()
        self.screen.start()

        self.screen.register_palette([
            ("title", "white", "dark blue", "standout"),
            ("line", "light gray", "black"),
            ("help", "white", "dark blue")]
        )

        self.body = ListBox(SimpleListWalker([]))
        self.lines = self.body.body

        self.title = Text(MAIN_TITLE)
        self.header = AttrWrap(self.title, "title")

        self.help = AttrWrap(
            Text(HELP_STRINGS["main"]),
            "help"
        )

        self.input = Edit(caption="%s> " % self.ircchannel)
        self.footer = Pile([self.help, self.input])

        self.top = Frame(self.body, self.header, self.footer)
示例#3
0
    def prepare(self):
        """
        Prepare console screen objects, logger, ask for widgets
        """
        super(ConsoleStatusReporter, self).prepare()
        self.disabled = self.settings.get("disable", False)
        if self.disabled:
            return

        if sys.stdout.isatty() and platform.system() != 'Windows':
            self.screen = Screen()
            self.__detect_console_logger()
        else:
            cols = self.settings.get('dummy-cols', self.screen_size[0])
            rows = self.settings.get('dummy-rows', self.screen_size[1])
            self.screen = DummyScreen(cols, rows)

        widgets = []
        if isinstance(self.engine.provisioning, Local):
            for executor in self.engine.provisioning.executors:
                if isinstance(executor, WidgetProvider):
                    widgets.append(executor.get_widget())
            for reporter in self.engine.reporters:
                if isinstance(reporter, WidgetProvider):
                    widgets.append(reporter.get_widget())

        self.console = TaurusConsole(widgets)
        self.screen.register_palette(self.console.palette)
示例#4
0
 def __init__(self, stopperFunction):
     """Constructor"""
     self.running = False
     self.stopperFunction = stopperFunction
     self.id_counter = 0
     # A screen is useful right away
     self.screen = Screen()
     self.screen.register_palette(self.palette)
     self.screen.set_mouse_tracking(True)
示例#5
0
 def __init__(self, max_visible=4, min_columns=36):
     self.screen = Screen()
     self.max_visible = max_visible
     self.min_cols = min_columns
     self.contents = []
     self.deleted = []
     self.index = 0
     self.focus = 0
     self.visible = 0
     self.filter = ''
     self.group = ''
示例#6
0
 def __init__(self, interval, hosts=[]):
     self.screen = Screen()
     self.screen.set_terminal_properties(256)
     self.models = [
         GraphModel(hosts),
         NodesModel(hosts),
         JobsModel(hosts),
     ]
     # don't allow refresh intervals < 100ms
     self.refresh_interval = max(0.1, interval)
     self.view = MainWindow(self)
     self.view.update_footer(hosts)
     self.loop = None
     self.exit_message = None
示例#7
0
 def __init__(self, palette=None):
     # A screen is useful to have right away
     self.screen = Screen()
     if palette is None:
         palette = gui.GUI.palette
     self.screen.register_palette(palette)