コード例 #1
0
    def refresh(self):
        if not self._tree:
            self._pbar = mforms.newProgressBar()
            self._pbar.set_indeterminate(True)
            self._pbar.start()
            self._pbar.set_size(400, -1)

            self._wait_table = mforms.newTable()
            self._wait_table.set_row_spacing(8)
            self._wait_table.set_row_count(2)
            self._wait_table.set_column_count(1)
            self._wait_table.set_padding(-1)
            self._wait_table.add(
                mforms.newLabel("Querying performance schema %s..." %
                                self.caption.encode("utf8")), 0, 1, 0, 1,
                mforms.HFillFlag)
            self._wait_table.add(self._pbar, 0, 1, 1, 2, mforms.HFillFlag)

            self.add(self._wait_table, True, True)

        if not self._busy:
            self._busy = True
            if self._refresh:
                self._refresh.set_enabled(False)

            self.result = None
            self._thr = Thread(target=self.run_query)
            self._check_timeout = mforms.Utilities.add_timeout(
                1.0, self.check_if_finished)
            self._thr.start()
コード例 #2
0
    def __init__(self,
                 ctrl_be,
                 title,
                 descr,
                 stop_callback=None,
                 close_callback=None,
                 progress_parser_callback=None):
        mforms.Form.__init__(self, mforms.Form.main_form(),
                             mforms.FormDialogFrame)
        self.ctrl_be = ctrl_be

        self._done = False
        self._update_tm = None

        self.finished_callback = None
        self.stop_callback = stop_callback
        self.close_callback = close_callback
        self.progress_parser_callback = progress_parser_callback

        self.show(False)

        self.box = mforms.newBox(False)
        self.set_content(self.box)
        self.box.set_padding(12)
        self.box.set_spacing(20)

        self.set_title(title)
        self.label = mforms.newLabel(descr)
        self.box.add(self.label, False, True)

        hb = mforms.newBox(True)
        self.progress = mforms.newProgressBar()
        self.progress_label = mforms.newLabel("")
        self.progress_label.set_size(100, -1)
        hb.add(self.progress_label, False, True)
        hb.add(self.progress, True, True)
        self.box.add(hb, False, True)

        self.logbox = mforms.newTextBox(mforms.VerticalScrollBar)
        self.logbox.set_read_only(True)
        panel = mforms.newPanel(mforms.TitledBoxPanel)
        panel.set_title("Command Output")

        self.logbox.set_padding(8)
        panel.add(self.logbox)
        self.box.add(panel, True, True)

        bbox = mforms.newBox(True)
        self.box.add_end(bbox, False, True)

        self.stop = mforms.newButton()
        if stop_callback:
            self.stop.set_text("Stop")
        else:
            self.stop.set_text("Close")
        self.stop.add_clicked_callback(self.do_stop)
        bbox.add_end(self.stop, False, True)

        self.set_size(700, 500)
        self.center()
コード例 #3
0
ファイル: run_script.py プロジェクト: zfh521/mysql-workbench
    def __init__(self, editor, log_callback):
        mforms.Table.__init__(self)
        self.set_managed()
        self.set_release_on_add()

        self.set_row_count(2)
        self.set_column_count(1)

        self.set_padding(-1)

        self.label = mforms.newLabel("Running script...")
        self.add(self.label, 0, 1, 0, 1, mforms.HFillFlag)

        self.progress = mforms.newProgressBar()
        self.add(self.progress, 0, 1, 1, 2, mforms.HFillFlag)

        self.progress.set_size(400, -1)

        self.log_callback = log_callback
        self.editor = editor

        self.importer = MySQLScriptImporter(editor.connection)
        self.importer.report_progress = self.report_progress
        self.importer.report_output = self.report_output

        self._worker_queue = Queue()
        self._worker = None
        self._progress_status = None
        self._progress_value = 0

        self._update_timer = None
コード例 #4
0
    def __init__(self, owner, editor, ctrl_be):
        mforms.Table.__init__(self)
        self.set_managed()
        self.set_release_on_add()

        self.set_row_count(2)
        self.set_column_count(1)

        self.set_padding(-1)

        self.label = mforms.newLabel("Installing...")
        self.add(self.label, 0, 1, 0, 1, mforms.HFillFlag)
        
        self.progress = mforms.newProgressBar()
        self.add(self.progress, 0, 1, 1, 2, mforms.HFillFlag)
        
        self.progress.set_size(400, -1)
        
        self.owner = owner
        self.ctrl_be = ctrl_be
        
        self.importer = MySQLScriptImporter(editor.connection)
        self.importer.report_progress = self.report_progress
        self.importer.report_output = self.report_output
        
        self._worker_queue = Queue()
        self._worker = None
        self._progress_status = None
        self._progress_value = 0

        self._update_timer = None
        self._messages = []
コード例 #5
0
    def __init__(self,
                 main,
                 header_label,
                 description=None,
                 use_private_message_handling=False):
        wizard_page_widget.WizardPage.__init__(self, main, header_label)

        self._use_private_message_handling = use_private_message_handling

        self._description = mforms.newLabel(
            description or
            "The following tasks will now be performed. Please monitor the execution."
        )
        self._description.set_name('Page Description')
        self.content.add(self._description, False, True)

        self._tasks_box = mforms.newBox(False)
        self._tasks_box.set_padding(24)
        self._tasks_box.set_spacing(8)
        self.content.add(self._tasks_box, False, True)

        self._status_label = mforms.newLabel("Click [Next >] to execute.")
        self._status_label.set_name("Next Information")
        self.content.add(self._status_label, False, True)

        self._progress = mforms.newProgressBar()
        self.content.add(self._progress, False, True)
        self._progress.show(False)

        self._detail_label = mforms.newLabel("")
        self._detail_label.set_name('Details')
        self.content.add(self._detail_label, False, True)

        self._timer = None
        self._tasks = []
        self._currently_running_task_index = None
        self._progress_indeterminate = False
        self._tasks_finished = False

        self._log_box = mforms.newPanel(mforms.TitledBoxPanel)
        self._log_box.set_title("Message Log")
        self._log_box.set_name("Message Log")

        self._log_text = mforms.newTextBox(mforms.VerticalScrollBar)
        self._log_text.set_name('Wizard Progress Log Text')
        self._log_text.set_read_only(True)
        self._log_text.set_padding(16)
        self._log_box.add(self._log_text)
        self._log_box.show(False)
        self.content.add_end(self._log_box, True, True)
        self._log_queue = deque()

        self._showing_logs = False
        self._cancel_requested = False
        self._tasks_held = False
        self.advanced_button.set_text("Show Logs")

        self._log_progress_text = True
        self._autostart = False
コード例 #6
0
    def __init__(self, ctrl_be, title, descr, stop_callback = None, close_callback=None, progress_parser_callback=None):
        mforms.Form.__init__(self, mforms.Form.main_form(), mforms.FormDialogFrame)
        self.ctrl_be = ctrl_be

        self._done = False
        self._update_tm = None

        self.finished_callback = None
        self.stop_callback = stop_callback
        self.close_callback = close_callback
        self.progress_parser_callback = progress_parser_callback

        self.show(False)

        self.box = mforms.newBox(False)
        self.set_content(self.box)
        self.box.set_padding(12)
        self.box.set_spacing(20)

        self.set_title(title)
        self.label = mforms.newLabel(descr)
        self.box.add(self.label, False, True)

        hb = mforms.newBox(True)
        self.progress = mforms.newProgressBar()
        self.progress_label = mforms.newLabel("")
        self.progress_label.set_size(100, -1)
        hb.add(self.progress_label, False, True)
        hb.add(self.progress, True, True)
        self.box.add(hb, False, True)

        self.logbox = mforms.newTextBox(mforms.VerticalScrollBar)
        self.logbox.set_read_only(True)
        panel = mforms.newPanel(mforms.TitledBoxPanel)
        panel.set_title("Command Output")

        self.logbox.set_padding(8)
        panel.add(self.logbox)
        self.box.add(panel, True, True)


        bbox = mforms.newBox(True)
        self.box.add_end(bbox, False, True)

        self.stop = mforms.newButton()
        if stop_callback:
            self.stop.set_text("Stop")
        else:
            self.stop.set_text("Close")
        self.stop.add_clicked_callback(self.do_stop)
        bbox.add_end(self.stop, False, True)

        self.set_size(700, 500)
        self.center()
コード例 #7
0
    def __init__(self, main, header_label, description = None, use_private_message_handling=False):
        wizard_page_widget.WizardPage.__init__(self, main, header_label)
      
        self._use_private_message_handling = use_private_message_handling
      
        self._description = mforms.newLabel(description or "The following tasks will now be performed. Please monitor the execution.")
        self.content.add(self._description, False, True)
        
        self._tasks_box = mforms.newBox(False)
        self._tasks_box.set_padding(24)
        self._tasks_box.set_spacing(8)
        self.content.add(self._tasks_box, False, True)
        
        self._status_label = mforms.newLabel("Click [Next >] to execute.")
        self.content.add(self._status_label, False, True)
        
        self._progress = mforms.newProgressBar()
        self.content.add(self._progress, False, True)
        self._progress.show(False)
        
        self._detail_label = mforms.newLabel("")
        self.content.add(self._detail_label, False, True)

        self._timer = None
        self._tasks = []
        self._currently_running_task_index = None
        self._progress_indeterminate = False
        self._tasks_finished = False
        
        self._log_box = mforms.newPanel(mforms.TitledBoxPanel)
        self._log_box.set_title("Message Log")
        self._log_box.set_padding(12)
        
        self._log_text = mforms.newTextBox(mforms.VerticalScrollBar)
        self._log_text.set_name('WizardProgressLogText')
        self._log_text.set_read_only(True)
        self._log_box.add(self._log_text)
        self._log_box.show(False)
        self.content.add_end(self._log_box, True, True)
        self._log_queue = deque()
        
        self._showing_logs = False
        self._cancel_requested = False
        self._tasks_held = False
        self.advanced_button.set_text("Show Logs")
        
        self._log_progress_text = True
        self._autostart = False