Example #1
0
    def __init__(self, parent, queue):
        """
        Create the widget.

        @type  parent: tkinter.Frame
        @param parent: The parent widget.
        @type  queue: Exscript.Queue
        @param queue: The watched queue.
        """
        Frame.__init__(self, parent)
        self.pack(expand=True, fill=BOTH)
        self.columnconfigure(0, pad=6)
        self.columnconfigure(1, weight=1)
        row = -1

        # Progress bar.
        row += 1
        self.rowconfigure(row, weight=0)
        self.label_progress = Label(self, text='Progress:')
        self.progress_bar = ProgressBar(self)
        self.label_progress.grid(row=row, column=0, sticky=W)
        self.progress_bar.grid(row=row, column=1, sticky=W + E)

        # Padding.
        row += 1
        self.rowconfigure(row, pad=6)
        padding = Frame(self)
        padding.grid(row=row, column=0, sticky=W)

        row += 1
        self.rowconfigure(row, weight=1)
        self.notebook = Notebook(self)
        self.notebook.grid(row=row,
                           column=0,
                           columnspan=2,
                           sticky=N + S + E + W)

        self.data_queue = Queue.Queue()
        self.pages = {}
        self.queue = queue
        self.queue.workqueue.job_started_event.connect(self._on_job_started)
        self.queue.workqueue.job_error_event.connect(self._on_job_error)
        self.queue.workqueue.job_succeeded_event.connect(
            self._on_job_succeeded)
        self.queue.workqueue.job_aborted_event.connect(self._on_job_aborted)
        self._update()