def __init__(self, person, **kwargs): super(AppSwitcher, self).__init__ (**kwargs) def logout(instance): """ A callback function that calls the logoutUser method from masterControl. Is the event handler for the Sign Out button.""" self.clear_widgets() self.parent.logoutUser() def editHandle(instance): """ A callback function that sets the current screen to the profile edit appelt. """ print("In EditHandle") sm.current = 'prof' prof = ProfileManager(person, name = 'prof') bar = F.ActionBar(pos_hint={'top': 1}) av = F.ActionView() av.add_widget(F.ActionPrevious(title='Dash', with_previous=False)) av.add_widget(F.ActionOverflow()) testButton = ActionButton(text = 'testButton') dd = ActionGroup(text = 'Applets', mode = 'spinner') dd.add_widget(testButton) av.add_widget(dd) userdd = ActionGroup(text='Welcome ' + person.m_name, mode = 'spinner') logoutButton = ActionButton(text = 'Sign Out') logoutButton.bind(on_release = logout) editProfileButton = ActionButton(text = 'Edit Profile') editProfileButton.bind(on_release = editHandle) userdd.add_widget(editProfileButton) userdd.add_widget(logoutButton) av.add_widget(userdd) bar.add_widget(av) av.use_separator = True self.add_widget(bar) sm = ScreenManager() screen = Screen(name='Screen') screen.add_widget(Label(text='Screen')) screen2 = Screen(name='Screen 2') screen2.add_widget(Label(text = 'Screen 2')) sm.add_widget(screen) sm.add_widget(screen2) sm.add_widget(prof) self.add_widget(sm)
def place_list(self, req): if req['data'] is None: self.ids.content_layout.add_widget( Label(text="No camera added yet")) else: # pprint.pprint(req) for x in req['data']: actionbar = F.ActionBar(pos_hint={'top': 1}) av = F.ActionView() av.add_widget( F.ActionPrevious(title=x['name'], with_previous=False, size=[0.5, 0.5])) av.add_widget(F.ActionOverflow()) ag = F.ActionGroup(text='CV') ag.add_widget( F.ActionPrevious(title=x['ip'], with_previous=False)) class OffActionButton(Button, ActionItem): def __init__(self, **kwargs): super(OffActionButton, self).__init__(**kwargs) self.camera_id = x['id'] self.text = "Delete" self.size = [0.5, 1] self.size_hint_x = .3 self.size_hint_y = 1 def on_release(self): try: URL = api_uri + '/gui/deletecamera/{0}'.format( self.camera_id) r = requests.get(URL) rjson = r.json() print rjson except Exception as e: print e ag.add_widget(OffActionButton()) av.add_widget(ag) actionbar.add_widget(av) self.ids.content_layout.add_widget(actionbar)
def __init__(self): super().__init__(orientation='vertical') # Set up action bar ribbon = F.ActionBar() ribbonView = F.ActionView() ap = F.ActionPrevious(title='hi', with_previous=False) ap.app_icon = '' ## Set up action bar buttons pencil = ActionButton(text='Pen') eraser = ActionButton(text='Eraser') ## Add components to GUI ribbonView.add_widget(ap) ribbonView.add_widget(pencil) ribbonView.add_widget(eraser) ribbon.add_widget(ribbonView) self.add_widget(ribbon) # Set up drawing canvas self.add_widget(Label(text="hi"))
def place_list(self, req): print(type(req['status'])) print self.format_status(req['status']) if req['status'] is 1 or self.pending: if not self.pending: self.pending = True self.counter = 20 if self.pending: self.counter = -1 if self.counter is 0: self.pending = False if self.pending and req['status'] is 0: req['status'] = 3 self.ids.scanner_list.add_widget( Label(text="Scanner status: {0}".format( self.format_status(req['status'])))) for x in req['ips']: actionbar = F.ActionBar(pos_hint={'top': 2}) av = F.ActionView() av.add_widget( F.ActionPrevious(title=x, with_previous=False, size=[1, 1])) av.add_widget(F.ActionOverflow()) print x class AddActionButton(Button, ActionItem): def __init__(self, popup, **kwargs): super(AddActionButton, self).__init__(**kwargs) self.popup = popup self.camera_id = x self.ip = str(x) print("Button IP:" + self.ip) self.text = "Add Camera" self.size = [0.5, 1] self.size_hint_x = .3 self.size_hint_y = 1 def on_release(self): try: self.create_camera_post_request( self.ip, self.ip, 'GembirdCamera') self.popup.dismiss_popup() except Exception as e: print e def create_camera_post_request(self, name, ip, libname): try: data = {"name": name, "ip": ip, "libname": libname} req = urllib2.Request(api_uri + '/gui/createcamera') req.add_header('Content-Type', 'application/json') response = urllib2.urlopen(req, json.dumps(data)) print(response) except ValueError as e: traceback.print_exc() print(e) av.add_widget(AddActionButton(self)) actionbar.add_widget(av) self.ids.scanner_list.add_widget(actionbar) else: self.ids.scanner_list.add_widget( Label(text="Scanner status: {0}".format( self.format_status(req['status']))))
def build(self): # -- Estructura de la pagina principal -- Window.clearcolor = (219, 219, 219, 1) self.p1 = GridLayout(rows=50, spacing=10, size_hint_y=1) self.p1.bind(minimum_height=self.p1.setter('height'), minimum_width=self.p1.setter('width')) # -- Menu princial -- Color = [0, 4, 5, 1] self.menu1 = MenuBar.ActionBar(pos_hint={'top': 0}, background_color=Color) self.previos = MenuBar.ActionPrevious(title='', with_previous=False) self.menu2 = MenuBar.ActionView() # --- Acciones de menu --- self.li1 = MenuBar.ActionButton(text="Acerca de", size_hint_y=None, height=120, on_release=lambda b1: self.acercade()) self.li4 = MenuBar.ActionButton( text="Ocultar", size_hint_y=None, height=120, on_release=lambda b1: self.antiacercade()) self.li2 = MenuBar.ActionButton(text="Limpiar", size_hint_y=None, height=120, on_release=lambda b1: self.limp()) self.li3 = MenuBar.ActionButton(text="Salir", size_hint_y=None, height=120, on_release=lambda b1: self.salir()) # --- Se activan para la visualizacion en la pantalla --- # -- Accciones de menu -- self.menu2.add_widget(self.li2) self.menu2.add_widget(self.li1) self.menu2.add_widget(self.li4) self.menu2.add_widget(self.li3) self.menu2.add_widget(self.previos) self.menu1.add_widget(self.menu2) self.p1.add_widget(self.menu1) # --- Elementos en pantalla --- colorl = [0, 0, 0, 1] Colo = [1, 0, 0, 1] self.label1 = Label( text= ' Nota: Puede realizar las siguientes operaciones: \nSuma, Multiplicacion, Resta, Division y Factorial ', size_hint_y=None, height=180, color=colorl) self.p1.add_widget(self.label1) # --- cuadros de textos --- # -- Cuadro 1 -- self.p1.add_widget( Label(text='Ingrese el primer numero:', color=colorl, size_hint_y=None, height=80)) self.num1 = TextInput(text='0', multiline=False, size_hint_y=None, height=80, input_filter="float") self.p1.add_widget(self.num1) # -- Cuadro 2 -- self.p1.add_widget( Label(text='Ingrese el segundo numero:', color=colorl, size_hint_y=None, height=80)) self.num2 = TextInput(text='0', multiline=False, size_hint_y=None, height=80, input_filter="float") self.p1.add_widget(self.num2) self.resultaditos = Label(text='', size_hint_y=None, height=80, color=Colo) self.p1.add_widget(self.resultaditos) # --- Bottones --- self.S = Button(text='Sumar', size_hint_y=None, height=135, on_release=lambda b1: self.validar("Suma")) self.p1.add_widget(self.S) self.R = Button(text='Restar', size_hint_y=None, height=135, on_release=lambda b1: self.validar("Resta")) self.p1.add_widget(self.R) self.M = Button(text='Multiplicar', size_hint_y=None, height=135, on_release=lambda b1: self.validar("Multiplicacion")) self.p1.add_widget(self.M) self.D = Button(text='Division', size_hint_y=None, height=135, on_release=lambda b1: self.validar("Division")) self.p1.add_widget(self.D) self.F = Button(text='Factorial', size_hint_y=None, height=135, on_release=lambda b1: self.validar("Factorial")) self.p1.add_widget(self.F) # -- info extra -- self.info = Label(text='', size_hint_y=None, height=250, color=Colo) self.p1.add_widget(self.info) self.p1.add_widget( Image(source='logo1.png', size_hint_y=None, height=500)) # -- retornamos la pantalla principal return self.p1
def place_list(self, req): print(type(req['status'])) print self.format_status(req['status']) if req['status'] is 1 or self.pending: if not self.pending: self.pending = True self.counter = 20 if self.pending: self.counter = - 1 if self.counter is 0: self.pending = False if self.pending and req['status'] is 0: req['status'] = 3 self.ids.scanner_list.add_widget( Label(text="Scanner status: {0}".format(self.format_status(req['status'])))) for x in req['ips']: actionbar = F.ActionBar(pos_hint={'top': 2}) av = F.ActionView() av.add_widget(F.ActionPrevious(title=x, with_previous=False, size=[1, 1])) av.add_widget(F.ActionOverflow()) print x class AddActionButton(Button, ActionItem): def __init__(self, popup, **kwargs): super(AddActionButton, self).__init__(**kwargs) self.popup = popup self.text = "Set as API" self.size = [0.5, 1] self.size_hint_x = .3 self.size_hint_y = 1 def on_press(self): try: self.set_api(x) print 5 self.popup.dismiss_popup() print 6 except Exception as e: print e def set_api(self, x): api_url = 'http://{0}:3000'.format(x) print(type(x)) print api_url path_to_json = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'settings.json') jsonFile = open(path_to_json, "r") data = json.load(jsonFile) jsonFile.close() print 1 ## Working with buffered content data["api_uri"] = api_url JSONThread1 = JSONThread() JSONThread1.data = data JSONThread1.start() av.add_widget(AddActionButton(self)) actionbar.add_widget(av) self.ids.scanner_list.add_widget(actionbar) else: self.ids.scanner_list.add_widget( Label(text="Scanner status: {0}".format(self.format_status(req['status']))))
def place_list(self, req): try: if req['data'] is None: self.ids.content_layout.add_widget( Label(text="No camera added yet")) else: # Print active camera list # pprint.pprint(req) for x in req['data']: actionbar = F.ActionBar(pos_hint={'top': 1}) av = F.ActionView() av.add_widget( F.ActionPrevious(title=x['name'], with_previous=False, size=[0.5, 0.5])) av.add_widget(F.ActionOverflow()) # Print CV STATUS of active camera list # print 'CV assigned ' + str(x['cv_assigned']) # print 'CV status ' + str(x['cv_status']) if x['cv_assigned'] is False: titlestr = "Computer Vision: Not Assigned" elif x['cv_status'] is False: titlestr = "Computer Vision: OFF" elif x['cv_status'] is True: titlestr = "Computer Vision: ON" ag = F.ActionGroup(text='CV') ag.add_widget( F.ActionPrevious(title=titlestr, with_previous=False)) class OffActionButton(Button, ActionItem): def __init__(self, **kwargs): super(OffActionButton, self).__init__(**kwargs) self.camera_id = x['id'] self.text = "Off" self.size = [0.5, 1] self.size_hint_x = .3 self.size_hint_y = 1 def on_release(self): try: URL = api_uri + '/gui/disablecv/{0}'.format( self.camera_id) r = requests.get(URL) rjson = r.json() print rjson except Exception as e: print e class OnActionButton(Button, ActionItem): def __init__(self, **kwargs): super(OnActionButton, self).__init__(**kwargs) self.camera_id = x['id'] self.text = "On" self.size = [0.5, 1] self.size_hint_x = .3 self.size_hint_y = 1 def on_release(self): try: URL = api_uri + '/gui/enablecv/{0}'.format( self.camera_id) r = requests.get(URL) rjson = r.json() print rjson except Exception as e: print e class ManualButton(Button, ActionItem): def __init__(self, **kwargs): super(ManualButton, self).__init__(**kwargs) self.camera_id = x['id'] self.text = "Manual" self.size = [0.5, 1] self.size_hint_x = .3 self.size_hint_y = 1 def on_press(self): try: box = GridLayout(cols=3) box.add_widget( Button(text='up_left', on_release=lambda *args: self. move_request('up_left', *args))) box.add_widget( Button(text='up', on_release=lambda *args: self. move_request('up', *args))) box.add_widget( Button(text='up_right', on_release=lambda *args: self. move_request('up_right', *args))) box.add_widget( Button(text='left', on_release=lambda *args: self. move_request('left', *args))) box.add_widget( Button(text='close', on_release=self.popup_close)) box.add_widget( Button(text='right', on_release=lambda *args: self. move_request('right', *args))) box.add_widget( Button(text='down_left', on_release=lambda *args: self. move_request('down_left', *args))) box.add_widget( Button(text='down', on_release=lambda *args: self. move_request('down', *args))) box.add_widget( Button(text='down_right', on_release=lambda *args: self. move_request('down_right', *args))) box.add_widget(Label(text='Size of margins')) controlSlider = Slider(min=0.8, max=1.05, value=1) box.add_widget(controlSlider) box.add_widget( Button(text='Send Margins', on_release=lambda *args: self. send_slider_value(controlSlider. value))) self.popup = Popup(title='Manual Control', content=box, auto_dismiss=False, size_hint=(.8, .8), size=(400, 400)) self.popup.open() except Exception as e: traceback.print_exc() print e def send_slider_value(self, value): URL = api_uri + '/get/slider/value={}'.format( value) r = requests.get(URL) sleep(2) def move_request(self, direction, *args): print str(direction) requests.get( (api_uri + '/gui/move/manual/camera_id={}/direction={}'. format(self.camera_id, direction))) def popup_close(self, *args): self.popup.dismiss() ag.add_widget(OffActionButton()) ag.add_widget(OnActionButton()) ag.add_widget(ManualButton()) av.add_widget(ag) actionbar.add_widget(av) self.ids.content_layout.add_widget(actionbar) except TypeError as e: traceback.print_exc() print(e)