def _show_inputs(self, inps): if self._gui_enable is True: self._prepare_main_panel() gap = 20 w = _CONTENT_WIDTH - (2 * gap) h = 100 l = gdi.Label() l.set_position(gap, gap) l.set_size(w, h) l.set_wordwrap(True) l.set_text_align(gdi.TEXT_ALIGN_LEFTTOP) l.set_text(inps.get_message()) self._pnlmain.add_component(l) lblw = 170 ar = inps.get_inputs() p = 120 for i in range(len(ar)): inp = ar[i] #LABEL l = gdi.Label() l.set_position(gap, p) l.set_size(lblw - 1, 30) l.set_text(inp['label']) self._pnlmain.add_component(l) #TEXTBOX t = gdi.TextBox() t.set_name(inp['key']) t.set_position(gap + lblw, p) t.set_size(_CONTENT_WIDTH - (4 * gap) - lblw, 30) t.set_text(inp['variable'].get()) if inp['variable'].is_password(): t.set_password_mask(True) self._pnlmain.add_component(t) t.set_validate(inps.on_validate) if i == 0: t.focus() p += 36 else: print("") print(inps.get_message()) ar = inps.get_inputs() for i in range(len(ar)): inp = ar[i] v = inp['variable'].get() if v is None: v = "" if v != "" and not inp['variable'].is_password(): v = " (" + v + ")" rd = self._clmode_read(inp['label'] + v + ":", inp['variable'].is_password()) if rd is not None: if rd.strip() != "": inp['variable'].set(rd) else: return self._clmode_next()
def _enable_disable_action(self, e): if e["action"] == "DIALOG_YES": try: val = "false" mess_ok = 'monitorAgentDisabled' if self._cur_status == "DISABLE": val = "true" mess_ok = 'monitorAgentEnabled' pwd = "" if self.check_auth(pwd): self.set_config(pwd, "enabled", val) dlg = gdi.DialogMessage(gdi.DIALOGMESSAGE_ACTIONS_OK, gdi.DIALOGMESSAGE_LEVEL_INFO, self._app) dlg.set_title(self._get_message('monitorTitle')) dlg.set_message(self._get_message(mess_ok)) dlg.show() else: #RICHIEDE PASSWORD dlg = gdi.Window(gdi.WINDOW_TYPE_DIALOG, self._app) dlg.set_title(self._get_message('monitorTitle')) dlg.set_size(220, 140) dlg.set_show_position(gdi.WINDOW_POSITION_CENTER_SCREEN) lbl = gdi.Label() lbl.set_text(self._get_message('monitorEnterPassword')) lbl.set_position(10, 10) lbl.set_width(200) dlg.add_component(lbl) txt = gdi.TextBox() txt.set_name("txtPassword") txt.set_password_mask(True) txt.set_position(10, 10 + lbl.get_height()) txt.set_width(200) dlg.add_component(txt) pnlBottomH = 55 pnl = gdi.Panel() pnl.set_position(0, dlg.get_height() - pnlBottomH) pnl.set_size(dlg.get_width(), pnlBottomH) dlg.add_component(pnl) bt = gdi.Button() bt.set_position( int((dlg.get_width() / 2) - (bt.get_width() / 2)), 10) bt.set_text(self._get_message('ok')) bt.set_action(self._enable_disable_action_pwd) pnl.add_component(bt) dlg.show() except Exception as e: dlg = gdi.DialogMessage(gdi.DIALOGMESSAGE_ACTIONS_OK, gdi.DIALOGMESSAGE_LEVEL_ERROR, self._app) dlg.set_title(self._get_message('monitorTitle')) dlg.set_message(str(e)) dlg.show()
def _wait_message_gui(self, msg, progr=None, allowclose=False): gap = 20 if self._wait_ui is None: self._btnext.set_enable(False) self._btback.set_enable(False) self._btclose.set_enable(allowclose) self._prepare_main_panel() lbl = gdi.Label() lbl.set_wordwrap(True) lbl.set_position(gap, (_CONTENT_HEIGHT / 2) - 60) lbl.set_size(_CONTENT_WIDTH - (2 * gap), 60) lbl.set_text_align(gdi.TEXT_ALIGN_LEFTTOP) self._pnlmain.add_component(lbl) pbar = gdi.ProgressBar() pbar.set_position(gap, _CONTENT_HEIGHT / 2) pbar.set_size(_CONTENT_WIDTH - (2 * gap), 24) self._pnlmain.add_component(pbar) self._wait_ui = {'label': lbl, 'progress': pbar} else: self._btclose.set_enable(allowclose) lbl = self._wait_ui['label'] pbar = self._wait_ui['progress'] if 'label_value' not in self._wait_ui or self._wait_ui[ 'label_value'] != msg: lbl.set_text(msg) self._wait_ui['label_value'] = msg if progr is None: if 'progress_value' not in self._wait_ui or self._wait_ui[ 'progress_value'] is not None: pbar.set_y(-100) lbl.set_y(0) lbl.set_height(_CONTENT_HEIGHT) lbl.set_text_align(gdi.TEXT_ALIGN_LEFTMIDDLE) self._wait_ui['progress_value'] = None else: if 'progress_value' not in self._wait_ui or self._wait_ui[ 'progress_value'] is None or self._wait_ui[ 'progress_value'] != progr: lbl.set_y((_CONTENT_HEIGHT / 2) - 40) lbl.set_height(30) lbl.set_text_align(gdi.TEXT_ALIGN_LEFTTOP) pbar.set_y(_CONTENT_HEIGHT / 2) pbar.set_percent(progr) self._wait_ui['progress_value'] = progr
def _show_message(self, msg): if self._gui_enable is True: self._prepare_main_panel() w=_CONTENT_WIDTH-(2*_GAP_TEXT) h=_CONTENT_HEIGHT-(2*_GAP_TEXT) l = gdi.Label() l.set_position(_GAP_TEXT,_GAP_TEXT) l.set_size(w,h) l.set_wordwrap(True) l.set_text(msg.get_message()) self._pnlmain.add_component(l) else: self._printcl(u"") self._printcl(msg.get_message()) rd = self._clmode_read(messages.get_message('pressEnter')) if rd is not None: self._clmode_next()
def _show_message(self, msg): if self._gui_enable is True: self._prepare_main_panel() gap = 20 w = _CONTENT_WIDTH - (2 * gap) h = _CONTENT_HEIGHT - (2 * gap) l = gdi.Label() l.set_position(gap, gap) l.set_size(w, h) l.set_wordwrap(True) l.set_text(msg.get_message()) self._pnlmain.add_component(l) else: print("") print(msg.get_message()) rd = self._clmode_read(resources.get_message('pressEnter')) if rd is not None: self._clmode_next()
def prepare_window(self): self._cur_status = "NOSERVICE" self._cur_connections = 0 #msgst=self._get_message('monitorStatusNoService') self._app = gdi.Window(gdi.WINDOW_TYPE_NORMAL_NOT_RESIZABLE, None, self._logo) self._app.set_title(self._get_message('monitorTitle')) self._app.set_size(_WIDTH, _HEIGHT) self._app.set_show_position(gdi.WINDOW_POSITION_CENTER_SCREEN) self._app.set_action(self._window_action) self._img_status_top = gdi.Panel() self._img_status_top.set_position(0, 0) self._img_status_top.set_size(_CONTENT_WIDTH, _HEIGHT_STATUS) self._img_status_top.set_background_gradient( "ffffff", "ffffff", gdi.GRADIENT_DIRECTION_TOPBOTTOM) self._app.add_component(self._img_status_top) self._img_status_bottom = gdi.Panel() self._img_status_bottom.set_position(0, _HEIGHT - _HEIGHT_STATUS) self._img_status_bottom.set_size(_CONTENT_WIDTH, _HEIGHT_STATUS) self._img_status_bottom.set_background_gradient( "ffffff", "ffffff", gdi.GRADIENT_DIRECTION_BOTTONTOP) self._app.add_component(self._img_status_bottom) self._lbl_status = gdi.Label() self._lbl_status.set_text_align(gdi.TEXT_ALIGN_CENTERMIDDLE) self._lbl_status.set_text(self._get_message('waiting')) self._lbl_status.set_position(0, _HEIGHT_STATUS) self._lbl_status.set_size(_CONTENT_WIDTH, _HEIGHT - (2 * _HEIGHT_STATUS)) self._app.add_component(self._lbl_status) self._pnl_bottom = gdi.Panel() self._pnl_bottom.set_position(_CONTENT_WIDTH, 0) self._pnl_bottom.set_size(_WIDTH_RIGHT, _HEIGHT) self._app.add_component(self._pnl_bottom) wbtn = _WIDTH_RIGHT - 20 hbtn = 36 appy = 10 self._btends = gdi.Button() self._btends.set_position(10, appy) self._btends.set_size(wbtn, hbtn) self._btends.set_text(self._get_message('monitorDisable')) self._btends.set_action(self.enable_disable) self._btends.set_enable(False) self._pnl_bottom.add_component(self._btends) appy += hbtn + 6 self._btconfig = gdi.Button() self._btconfig.set_position(10, appy) self._btconfig.set_size(wbtn, hbtn) self._btconfig.set_text(self._get_message('monitorConfigure')) self._btconfig.set_action(self.configure) self._btconfig.set_enable(False) self._pnl_bottom.add_component(self._btconfig) appy += hbtn + 6 self._btunistall = gdi.Button() self._btunistall.set_position(10, appy) self._btunistall.set_size(wbtn, hbtn) self._btunistall.set_text(self._get_message('monitorUninstall')) self._btunistall.set_action(self.unistall) self._pnl_bottom.add_component(self._btunistall) appy += hbtn + 6
def prepare_window(self): self._cur_status = "NOSERVICE" self._cur_activities = None #msgst=self._get_message('monitorStatusNoService') self._app = gdi.Window(gdi.WINDOW_TYPE_NORMAL_NOT_RESIZABLE, None, self._logo) self._app.set_title(self._get_message('monitorTitle')) self._app.set_size(_WIDTH, _HEIGHT) self._app.set_show_position(gdi.WINDOW_POSITION_CENTER_SCREEN) self._app.set_action(self._window_action) self._img_status_top = gdi.Panel() self._img_status_top.set_position(0, 0) self._img_status_top.set_size(_CONTENT_WIDTH, _HEIGHT_STATUS_BAR) self._img_status_top.set_background_gradient( "ffffff", "ffffff", gdi.GRADIENT_DIRECTION_TOPBOTTOM) self._app.add_component(self._img_status_top) self._lbl_status = gdi.Label() self._lbl_status.set_background("ffffff") self._lbl_status.set_opaque(True) self._lbl_status.set_text_align(gdi.TEXT_ALIGN_CENTERMIDDLE) self._lbl_status.set_text(self._get_message('waiting')) self._lbl_status.set_position(0, _HEIGHT_STATUS_BAR) #self._lbl_status.set_size(_CONTENT_WIDTH,int((_HEIGHT-(2*_HEIGHT_STATUS_BAR))/2.8)) self._lbl_status.set_size(_CONTENT_WIDTH, _HEIGHT_STATUS) self._app.add_component(self._lbl_status) self._img_status_bottom = gdi.Panel() self._img_status_bottom.set_position( 0, self._lbl_status.get_y() + self._lbl_status.get_height()) self._img_status_bottom.set_size(_CONTENT_WIDTH, _HEIGHT_STATUS_BAR) self._img_status_bottom.set_background_gradient( "ffffff", "ffffff", gdi.GRADIENT_DIRECTION_BOTTONTOP) self._app.add_component(self._img_status_bottom) self._lbl_notificationst = gdi.Label() self._lbl_notificationst.set_background("d9d9d9") self._lbl_notificationst.set_opaque(True) self._lbl_notificationst.set_text_align(gdi.TEXT_ALIGN_CENTERMIDDLE) self._lbl_notificationst.set_text( self._get_message('monitorCurrentActivities')) self._lbl_notificationst.set_position( 0, self._img_status_bottom.get_y() + self._img_status_bottom.get_height()) self._lbl_notificationst.set_size(_CONTENT_WIDTH, 25) self._app.add_component(self._lbl_notificationst) self._lbl_notificationsl = gdi.Label() self._lbl_notificationsl.set_background("ffffff") self._lbl_notificationsl.set_opaque(True) self._lbl_notificationsl.set_text_align(gdi.TEXT_ALIGN_RIGHTMIDDLE) self._lbl_notificationsl.set_position( 0, self._lbl_notificationst.get_y() + self._lbl_notificationst.get_height()) self._lbl_notificationsl.set_size( int(_CONTENT_WIDTH / 2), _HEIGHT - (self._lbl_notificationst.get_y() + self._lbl_notificationst.get_height())) self._app.add_component(self._lbl_notificationsl) self._lbl_notificationsr = gdi.Label() self._lbl_notificationsr.set_background("ffffff") self._lbl_notificationsr.set_opaque(True) self._lbl_notificationsr.set_text_align(gdi.TEXT_ALIGN_LEFTMIDDLE) self._lbl_notificationsr.set_position(int(_CONTENT_WIDTH / 2), self._lbl_notificationsl.get_y()) self._lbl_notificationsr.set_size( self._lbl_notificationsl.get_width(), self._lbl_notificationsl.get_height()) self._app.add_component(self._lbl_notificationsr) self._lbl_notificationsn = gdi.Label() self._lbl_notificationsn.set_background("ffffff") self._lbl_notificationsn.set_position( 0, self._lbl_notificationsl.get_y() + (int(self._lbl_notificationsl.get_height() / 2) - (26 / 2))) self._lbl_notificationsn.set_text( self._get_message('monitorNoActivities')) self._lbl_notificationsn.set_text_align(gdi.TEXT_ALIGN_CENTERMIDDLE) self._lbl_notificationsn.set_size(_CONTENT_WIDTH, 26) self._lbl_notificationsn.set_opaque(True) self._app.add_component(self._lbl_notificationsn) self._pnl_bottom = gdi.Panel() self._pnl_bottom.set_position(_CONTENT_WIDTH, 0) self._pnl_bottom.set_size(_WIDTH_RIGHT, _HEIGHT) self._app.add_component(self._pnl_bottom) wbtn = _WIDTH_RIGHT - 20 hbtn = 36 appy = 10 self._btends = gdi.Button() self._btends.set_position(10, appy) self._btends.set_size(wbtn, hbtn) self._btends.set_text(self._get_message('monitorDisable')) self._btends.set_action(self.enable_disable) self._btends.set_enable(False) self._pnl_bottom.add_component(self._btends) appy += hbtn + 6 self._btconfig = gdi.Button() self._btconfig.set_position(10, appy) self._btconfig.set_size(wbtn, hbtn) self._btconfig.set_text(self._get_message('monitorConfigure')) self._btconfig.set_action(self.configure) self._btconfig.set_enable(False) self._pnl_bottom.add_component(self._btconfig) appy += hbtn + 6 self._btunistall = gdi.Button() self._btunistall.set_position(10, appy) self._btunistall.set_size(wbtn, hbtn) self._btunistall.set_text(self._get_message('monitorUninstall')) self._btunistall.set_action(self.unistall) self._pnl_bottom.add_component(self._btunistall) appy += hbtn + 6
pp.show() elif e["action"] == u"ONCLOSE": #e["source"].hide() #e["cancel"]=True None if __name__ == "__main__": ww = gdi.Window() ww.set_title(u"Title test") ww.set_action(_test_window_action) #ww.set_position(100, 100) ww.set_size(800, 500) ww.set_show_position(gdi.WINDOW_POSITION_CENTER_SCREEN) l = gdi.Label() l.set_position(250, 50) l.set_width(100) l.set_text("Host") ww.add_component(l) t = gdi.TextBox() t.set_position(350, 50) ww.add_component(t) l = gdi.Label() l.set_position(250, 90) l.set_width(100) l.set_text("Port") ww.add_component(l)
def _show_chooser(self, chs): if self._gui_enable is True: self._prepare_main_panel() h=chs.get_message_height() w=_CONTENT_WIDTH-(2*_GAP_TEXT) l = gdi.Label() l.set_wordwrap(True) l.set_text_align(gdi.TEXT_ALIGN_LEFTTOP) l.set_text(chs.get_message()) l.set_position(_GAP_TEXT, _GAP_TEXT) l.set_size(w, h) self._pnlmain.add_component(l) ar = chs.get_choices() p=h+_GAP_TEXT for i in range(len(ar)): inp=ar[i] rb = gdi.RadioButton() rb.set_text(inp['label']) rb.set_position(_GAP_TEXT, p) rb.set_size(_CONTENT_WIDTH-(2*_GAP_TEXT), 30) rb.set_name(inp['key']) rb.set_group("RADIOBUTTON") if chs.get_variable().get()==inp['key']: rb.set_selected(True); rb.set_action(chs.on_selected) self._pnlmain.add_component(rb) p+=30 chs.set_main(self) else: self._printcl(u"") self._printcl(chs.get_message()) self._printcl(u"") ar = chs.get_choices() df = u"" ar_idx_accept=[] idx_default=None for i in range(len(ar)): inp=ar[i] self._printcl(str(i+1) + u". " + inp['label']) if chs.get_variable().get()==inp['key']: idx_default=i+1 df = u" (" + str(idx_default) + u")" if chs.is_accept_key(inp['key']): ar_idx_accept.append(i+1) rd = self._clmode_read(messages.get_message('option') + df + u":") if rd is not None: if rd=="": rd=str(idx_default) try: ird=int(rd) if (ird>len(ar)): raise Exception("") if len(ar_idx_accept) > 0: serr=[] berr=True for idxcur in ar_idx_accept: serr.append(str(idxcur)) if ird==idxcur: berr=False if berr: self._show_error(messages.get_message('mustAccept').format((u" " + messages.get_message('or') + u" ").join(serr))) return inp=ar[ird-1] except: self._show_error(messages.get_message('optionNotValid')) return chs.get_variable().set(inp['key']) self._clmode_next()
def _guimode_start(self): gdi.gdw_lib() #Se non è presente la libreria va in errore quindi in modalita console self._top_height=0 if self._topimage is not None: self._top_height=gdi.get_image_size(self._topimage)["height"] elif self._topinfo is not None: self._top_height=(22*len(self._topinfo.split("\n"))) + 10 self._app = gdi.Window(gdi.WINDOW_TYPE_NORMAL_NOT_RESIZABLE, logopath=self._logo) #self._app = Window(gdi.WINDOW_TYPE_NORMAL_NOT_RESIZABLE, logopath=self._logo) #self._app.setUI(self) self._app.set_title(self._title) self._app.set_size(_WIDTH, _HEIGHT+self._top_height) self._app.set_show_position(gdi.WINDOW_POSITION_CENTER_SCREEN) self._app.set_action(self._guimode_action) pnl_left = gdi.Panel(); pnl_left.set_position(0, self._top_height) pnl_left.set_size(_WIDTH_LEFT,_HEIGHT) if self._leftcolor is not None: pnl_left.set_background_gradient(self._leftcolor, "FFFFFF", gdi.GRADIENT_DIRECTION_LEFTRIGHT) else: pnl_left.set_background_gradient("83e5ff", "FFFFFF", gdi.GRADIENT_DIRECTION_LEFTRIGHT) self._app.add_component(pnl_left) if self._topimage is not None: pnl_top = gdi.ImagePanel(); pnl_top.set_position(0, 0) pnl_top.set_filename(self._topimage) pnl_top.set_size(_WIDTH,self._top_height) self._app.add_component(pnl_top) elif self._topinfo is not None: pnl_top = gdi.Panel(); pnl_top.set_position(0, 0) pnl_top.set_size(_WIDTH,self._top_height) pnl_top.set_background("d9d9d9") self._app.add_component(pnl_top) pnl_top_text = gdi.Label() pnl_top_text.set_position(10,0) pnl_top_text.set_size(_WIDTH-(2*10),self._top_height) pnl_top_text.set_wordwrap(True) pnl_top_text.set_foreground("000000") pnl_top_text.set_text(self._topinfo) pnl_top.add_component(pnl_top_text) pnl_bottom = gdi.Panel(); pnl_bottom.set_position(0, _CONTENT_HEIGHT+self._top_height) pnl_bottom.set_size(_WIDTH,_HEIGHT_BOTTOM) self._app.add_component(pnl_bottom) wbtn=140 hbtn=36 self._btback = gdi.Button(); self._btback.set_position(10, 10) self._btback.set_size(wbtn, hbtn) self._btback.set_text(messages.get_message('back')) self._btback.set_enable(False); self._btback.set_action(self._guimode_back) pnl_bottom.add_component(self._btback) self._btnext = gdi.Button(); self._btnext.set_position(10+wbtn+5, 10) self._btnext.set_size(wbtn, hbtn) self._btnext.set_text(messages.get_message('next')) self._btnext.set_enable(False); self._btnext.set_action(self._guimode_next) pnl_bottom.add_component(self._btnext) self._btclose = gdi.Button(); self._btclose.set_position(_WIDTH-wbtn-10, 10) self._btclose.set_size(wbtn, hbtn) self._btclose.set_text(messages.get_message('close')) self._btclose.set_enable(False); self._btclose.set_action(self._guimode_close) pnl_bottom.add_component(self._btclose) self._pnlmain=None self._cur_step_ui=None self._step_init_run=False self._guimode_step_init_start() self._app.show() gdi.loop()