def review_sql_code(code): form = mforms.Form(mforms.Form.main_form(), mforms.FormNormal) form.set_title("Review SQL Code to Execute") box = mforms.newBox(False) box.set_padding(12) form.set_content(box) box.set_spacing(8) box.add(mforms.newLabel("Review the SQL code to be executed."), False, True) editor = mforms.CodeEditor() box.add(editor, True, True) editor.set_language(mforms.LanguageMySQL) editor.set_text(code) editor.set_features(mforms.FeatureReadOnly, True) ok = mforms.newButton() ok.set_text("Execute") cancel = mforms.newButton() cancel.set_text("Cancel") bbox = mforms.newBox(True) bbox.set_spacing(8) bbox.add_end(ok, False, True) bbox.add_end(cancel, False, True) box.add_end(bbox, False, True) form.set_size(500, 360) return form.run_modal(ok, cancel)
def create_ui(self): box = mforms.newBox(False) box.set_spacing(8) lbl_box = mforms.newBox(False) lbl_box.set_spacing(8) lbl_box.add(mforms.newLabel("Type query that will be used as a base for export."), False, True) box.add(lbl_box, False, True) self.code_editor = mforms.CodeEditor() self.code_editor.set_language(mforms.LanguageMySQL) self.code_editor.set_managed() self.code_editor.set_release_on_add() box.add(self.code_editor, True, True) self.content.add(box, True, True)
def __init__(self, owner, json_text, context, server_version): mforms.Box.__init__(self, False) self.set_managed() self.set_release_on_add() self._context = context get_resource_path = mforms.App.get().get_resource_path self.toolbar = mforms.newToolBar(mforms.SecondaryToolBar) self.toolbar.set_back_color("#ffffff") self.switcher_item = newToolBarItem(mforms.SelectorItem) self.toolbar.add_item(self.switcher_item) s = newToolBarItem(mforms.SeparatorItem) self.toolbar.add_item(s) l = newToolBarItem(mforms.LabelItem) l.set_text("Display Info:") self.toolbar.add_item(l) item = newToolBarItem(mforms.SelectorItem) item.set_selector_items(["Read + Eval cost", "Data Read per Join"]) item.add_activated_callback(self.display_cost) self.toolbar.add_item(item) cost_type_item = item # cost info was added in 5.7.2 has_cost_info = server_version >= Version(5, 7) if not has_cost_info: item.set_enabled(False) #item = newToolBarItem(mforms.SelectorItem) # item.set_selector_items(["Show Aggregated Costs", "Show Individual Costs"]) # item.add_activated_callback(self.toggle_aggregated) # self.toolbar.add_item(item) #btn = newToolBarItem(mforms.SegmentedToggleItem) #btn.set_icon(get_resource_path("qe_resultset-tb-switcher_grid_off_mac.png")) #btn.set_alt_icon(get_resource_path("qe_resultset-tb-switcher_grid_on_mac.png")) #self.toolbar.add_item(btn) #btn = newToolBarItem(mforms.SegmentedToggleItem) #btn.set_icon(get_resource_path("qe_resultset-tb-switcher_explain_off.png")) #btn.set_alt_icon(get_resource_path("qe_resultset-tb-switcher_explain_on.png")) #self.toolbar.add_item(btn) s = newToolBarItem(mforms.SeparatorItem) self.toolbar.add_item(s) btn = newToolBarItem(mforms.ActionItem) btn.set_icon(get_resource_path("tiny_saveas.png")) btn.add_activated_callback(self.save) btn.set_tooltip("Save image to an external file.") self.toolbar.add_item(btn) s = newToolBarItem(mforms.SeparatorItem) self.toolbar.add_item(s) l = newToolBarItem(mforms.LabelItem) l.set_text("Overview:") self.toolbar.add_item(l) btn = newToolBarItem(mforms.ActionItem) btn.set_icon( get_resource_path("qe_sql-editor-explain-tb-overview.png")) btn.add_activated_callback(self.overview) btn.set_tooltip("Zoom out the diagram.") self.toolbar.add_item(btn) s = newToolBarItem(mforms.SeparatorItem) self.toolbar.add_item(s) l = newToolBarItem(mforms.LabelItem) l.set_text("View Source:") self.toolbar.add_item(l) btn = newToolBarItem(mforms.ToggleItem) btn.set_icon(get_resource_path("statusbar_output.png")) btn.set_alt_icon(get_resource_path("statusbar_output.png")) btn.add_activated_callback(self.switch_to_raw) btn.set_tooltip("View the raw JSON explain data.") self.toolbar.add_item(btn) self.add(self.toolbar, False, True) # Query Plan diagram self.scroll = mforms.newScrollPanel(mforms.ScrollPanelNoFlags) self.scroll.set_visible_scrollers(True, True) #self.img = mforms.newImageBox() self.drawbox = RenderBox(self._context, self.scroll) self.scroll.add(self.drawbox) self.drawbox.node_spacing = self.node_spacing self.drawbox.vertical = self.vertical self.add(self.scroll, True, True) self.display_cost(cost_type_item) # textbox to view the json data self._raw_explain = mforms.CodeEditor() self._raw_explain.set_value(json_text) self._raw_explain.set_language(mforms.LanguageJson) self._raw_explain.set_features( mforms.FeatureReadOnly | mforms.FeatureFolding, True) self.add(self._raw_explain, True, True) self._raw_explain.show(False) nc.add_observer(self.updateColors, "GNColorsChanged") backgroundColor = Color.getSystemColor(TextBackgroundColor) self.scroll.set_back_color(backgroundColor.to_html())