def delete_function(self,parent): global l_menu menu_name = self.eny3.get() func_name = self.eny8.get() if len(func_name) == 0: return if gui_message.ask('Do you really want to delete function [%s]?'%func_name): for i in range(len(l_menu)): if l_menu[i]['m_nam'] == menu_name: functions = l_menu[i]['m_items'] number_of_functions = len(functions) for j in range(number_of_functions): if functions[j]['i_nam'] == func_name: del l_menu[i]['m_items'][j] index = parent.menu.main_menu.component('%s-menu'%menu_name).index(func_name) parent.menu.main_menu.component('%s-menu'%menu_name).delete(index) self.functions.remove(func_name) try: os.remove('%s/PCMDI_GRAPHICS/%s_%s.py'%(os.environ['HOME'],menu_name,func_name)) except: pass try: os.remove('%s/PCMDI_GRAPHICS/%s_%s.pyo'%(os.environ['HOME'],menu_name,func_name)) except: pass self.eny8.clear() if len(self.functions) > 0: self.eny8.setlist(self.functions) break break gui_saved_settings.save_menus()
def rename(self, evt=None): global l_menu menu_name = self.eny3.get() function_name = self.eny8.get() new_name = self.eny8a.get() # If user tried to change the name but did not enter a new name, return if len(new_name) == 0: return else: for i in range(len(l_menu)): if l_menu[i]['m_nam'] == menu_name: for j in range(len(l_menu[i]['m_items'])): # Check to see if function name already exists if l_menu[i]['m_items'][j]['i_nam'] == new_name: gui_message.error('Function name already exists') return if l_menu[i]['m_items'][j]['i_nam'] == function_name: try: old_filename = '%s/PCMDI_GRAPHICS/%s_%s.py' % ( os.environ['HOME'], l_menu[i]['m_nam'], function_name) new_filename = '%s/%s_%s.py' % ( os.path.dirname(old_filename), l_menu[i]['m_nam'], new_name) infile = open(old_filename, 'r') outfile = open(new_filename, 'w') a = infile.read().split('\n') # Change function wrapper to use new name a[0] = 'def %s( item_name, func_dir ):' % new_name for k in range(len(a)): outfile.write('%s\n' % a[k]) outfile.close() # Remove old files try: os.remove(old_filename) except: pass try: os.remove('%so' % old_filename) except: pass l_menu[i]['m_items'][j]['i_nam'] = new_name index = self.functions.index(function_name) self.functions[index] = new_name # Dean will add code here to rename a function # and change the command of that function to # the new wrapped py file self.eny8.setlist(self.functions) self.eny8.setentry(new_name) except os.error, values: gui_message.error('Could not rename file: %s' % values[1]) return break break gui_saved_settings.save_menus()
def rename(self,evt = None): global l_menu menu_name = self.eny3.get() function_name = self.eny8.get() new_name = self.eny8a.get() # If user tried to change the name but did not enter a new name, return if len(new_name) == 0: return else: for i in range(len(l_menu)): if l_menu[i]['m_nam'] == menu_name: for j in range(len(l_menu[i]['m_items'])): # Check to see if function name already exists if l_menu[i]['m_items'][j]['i_nam'] == new_name: gui_message.error('Function name already exists') return if l_menu[i]['m_items'][j]['i_nam'] == function_name: try: old_filename = '%s/PCMDI_GRAPHICS/%s_%s.py'%(os.environ['HOME'],l_menu[i]['m_nam'],function_name) new_filename = '%s/%s_%s.py'%(os.path.dirname(old_filename),l_menu[i]['m_nam'],new_name) infile = open(old_filename,'r') outfile = open(new_filename,'w') a = infile.read().split('\n') # Change function wrapper to use new name a[0] = 'def %s( item_name, func_dir ):'%new_name for k in range(len(a)): outfile.write('%s\n'%a[k]) outfile.close() # Remove old files try: os.remove(old_filename) except: pass try: os.remove('%so'%old_filename) except: pass l_menu[i]['m_items'][j]['i_nam'] = new_name index = self.functions.index(function_name) self.functions[index] = new_name # Dean will add code here to rename a function # and change the command of that function to # the new wrapped py file self.eny8.setlist(self.functions) self.eny8.setentry(new_name) except os.error, values: gui_message.error( 'Could not rename file: %s'%values[1]) return break break gui_saved_settings.save_menus()
def change_description(self,parent,evt = None): global l_menu a = parent.menu.main_menu nam = self.eny3.get() descrip = self.eny4.get() if len(nam) == 0: return # Freakin' yeah, this was tough enough to figure out =) parent.balloon.bind(parent.menu.main_menu.component('%s-button'%nam),descrip) for i in range(len(l_menu)): if l_menu[i]['m_nam'] == nam: l_menu[i]['m_info'] = descrip gui_saved_settings.save_menus() break
def del_top_menu(self, parent): global l_menu a = parent.menu.main_menu nam = self.eny9.get() if len(nam) == 0: return if not (gui_message.ask( 'Do you really want to\ndelete menu [%s]?' % nam)): return for i in range(len(l_menu)): if l_menu[i]['m_nam'] == nam: a.deletemenu(nam) del l_menu[i] #-------------------------------------- # Remove files from ~/PCMDI_GRAPHICS #-------------------------------------- menuname = glob(os.environ['HOME'] + '/PCMDI_GRAPHICS/' + nam + '.py') if menuname: os.remove(menuname) menuitems = glob(os.environ['HOME'] + '/PCMDI_GRAPHICS/' + nam + '_*.py*') for j in range(len(menuitems)): os.remove(menuitems[j]) for k in range(len(self.menus)): if self.menus[k] == nam: del self.menus[k] self.eny3.setlist(self.menus) self.eny9.setlist(self.menus) self.eny9.setentry('') if nam == self.eny3.get(): self.eny3.setentry('') self.functions = [] self.func_list = [] self.eny4.clear() self.eny5_file.clear() self.eny6.clear() self.eny7.clear() self.eny8.clear() break break gui_saved_settings.save_menus()
def change_description(self, parent, evt=None): global l_menu a = parent.menu.main_menu nam = self.eny3.get() descrip = self.eny4.get() if len(nam) == 0: return # Freakin' yeah, this was tough enough to figure out =) parent.balloon.bind(parent.menu.main_menu.component('%s-button' % nam), descrip) for i in range(len(l_menu)): if l_menu[i]['m_nam'] == nam: l_menu[i]['m_info'] = descrip gui_saved_settings.save_menus() break
def del_top_menu(self,parent): global l_menu a = parent.menu.main_menu nam = self.eny9.get() if len(nam) == 0: return if not (gui_message.ask('Do you really want to\ndelete menu [%s]?'%nam)): return for i in range(len(l_menu)): if l_menu[i]['m_nam'] == nam: a.deletemenu(nam) del l_menu[i] #-------------------------------------- # Remove files from ~/PCMDI_GRAPHICS #-------------------------------------- menuname = glob(os.environ['HOME']+'/PCMDI_GRAPHICS/'+nam+'.py') if menuname: os.remove(menuname) menuitems = glob(os.environ['HOME']+'/PCMDI_GRAPHICS/'+nam+'_*.py*') for j in range(len(menuitems)): os.remove(menuitems[j]) for k in range(len(self.menus)): if self.menus[k] == nam: del self.menus[k] self.eny3.setlist(self.menus) self.eny9.setlist(self.menus) self.eny9.setentry('') if nam == self.eny3.get(): self.eny3.setentry('') self.functions = [] self.func_list = [] self.eny4.clear() self.eny5_file.clear() self.eny6.clear() self.eny7.clear() self.eny8.clear() break break gui_saved_settings.save_menus()
def add_top_menu(self, parent, evt=None): global l_menu addmenu = 1 a = parent.menu.main_menu nam = self.eny1.get() inf = self.eny2.get() if len(nam) == 0: gui_message.error(('Please enter a new menu name')) return for i in range(len(l_menu)): x = l_menu[i] # Add check here to make sure menu is not already defined as # a main menu if x['m_nam'] == nam: addmenu = 0 gui_message.error(( 'Menu name already exists.\nPlease choose another menu name.' )) break # Update main menu and "Menu name" pull down menu. Update # all appropriate fields if addmenu: men7 = a.addmenu(nam, inf, tearoff=1) m_dict = {'m_nam': nam, 'm_info': inf, 'm_items': []} l_menu.append(m_dict) self.menus.append(nam) self.eny3.setlist(self.menus) self.eny3.setentry(nam) self.eny4.setentry(inf) self.eny9.clear() self.eny9.setlist(self.menus) gui_saved_settings.save_menus() self.eny1.clear() self.eny2.clear() self.eny5_file.clear() self.eny5_import.clear() self.eny6.clear() self.eny7.clear() self.eny8.clear()
def add_top_menu( self, parent, evt = None ): global l_menu addmenu = 1 a = parent.menu.main_menu nam = self.eny1.get() inf = self.eny2.get() if len(nam) == 0: gui_message.error( ('Please enter a new menu name') ) return for i in range( len(l_menu) ): x = l_menu[i] # Add check here to make sure menu is not already defined as # a main menu if x[ 'm_nam' ] == nam: addmenu = 0 gui_message.error( ('Menu name already exists.\nPlease choose another menu name.')) break # Update main menu and "Menu name" pull down menu. Update # all appropriate fields if addmenu: men7 = a.addmenu( nam, inf, tearoff = 1 ) m_dict = { 'm_nam' : nam, 'm_info' : inf, 'm_items' : [] } l_menu.append( m_dict ) self.menus.append(nam) self.eny3.setlist(self.menus) self.eny3.setentry(nam) self.eny4.setentry(inf) self.eny9.clear() self.eny9.setlist(self.menus) gui_saved_settings.save_menus() self.eny1.clear() self.eny2.clear() self.eny5_file.clear() self.eny5_import.clear() self.eny6.clear() self.eny7.clear() self.eny8.clear()
def delete_function(self, parent): global l_menu menu_name = self.eny3.get() func_name = self.eny8.get() if len(func_name) == 0: return if gui_message.ask('Do you really want to delete function [%s]?' % func_name): for i in range(len(l_menu)): if l_menu[i]['m_nam'] == menu_name: functions = l_menu[i]['m_items'] number_of_functions = len(functions) for j in range(number_of_functions): if functions[j]['i_nam'] == func_name: del l_menu[i]['m_items'][j] index = parent.menu.main_menu.component( '%s-menu' % menu_name).index(func_name) parent.menu.main_menu.component( '%s-menu' % menu_name).delete(index) self.functions.remove(func_name) try: os.remove( '%s/PCMDI_GRAPHICS/%s_%s.py' % (os.environ['HOME'], menu_name, func_name)) except: pass try: os.remove( '%s/PCMDI_GRAPHICS/%s_%s.pyo' % (os.environ['HOME'], menu_name, func_name)) except: pass self.eny8.clear() if len(self.functions) > 0: self.eny8.setlist(self.functions) break break gui_saved_settings.save_menus()
def restore_menus( parent ): try: for i in range(len(user_menus.set.menu_dict)): success = 1 if user_menus.set.menu_dict[i].keys()[0] == 'Menu_name': nam = user_menus.set.menu_dict[i].values()[0] inf = user_menus.set.menu_dict[i+1].values()[0] menu_name = parent.menu.main_menu.addmenu( nam, inf, tearoff = 1 ) m_dict = { 'm_nam' : nam, 'm_info' : inf, 'm_items' : [] } l_menu.append( m_dict ) if user_menus.set.menu_dict[i].keys()[0] == 'item_Name': i_nam = user_menus.set.menu_dict[i].values()[0] i_dir = user_menus.set.menu_dict[i+1].values()[0] i_fun = user_menus.set.menu_dict[i+2].values()[0] i_file = user_menus.set.menu_dict[i+3].values()[0] i_dict = { 'i_nam' :i_nam, 'i_dir' : i_dir, 'i_file' : i_file, 'i_fun' : i_fun } l_item = m_dict[ 'm_items' ] pfile_name = nam + '_' + i_dict['i_nam'] if i_dir != '-999': current_directory = os.getcwd() try: eval('os.chdir(i_dir)') except: success = 0 gui_message.error('Could not access module directory') pass eval('os.chdir(current_directory)') try: exec "from %s import %s" % (pfile_name, i_dict['i_nam']) except: success = 0 m1 = ( 'Cannot access def [ %s ] in .py file [ %s ]' % (i_dict['i_nam'],pfile_name) ) gui_message.error( m1 ) pass try: f = eval( i_dict['i_nam'] ) parent.menu.main_menu.addmenuitem( nam, 'command', ' ', label = i_nam, command = gui_control.Command( f, i_dict['i_nam'], i_dict['i_dir'] ) ) except: success = 0 pass if success: l_item.append( i_dict ) gui_saved_settings.save_menus() except: pass
try: exec "from %s import %s" % (pfile_name, i_dict['i_nam']) except Exception,err: m1 = ( 'Cannot access def [ %s ] in .py file [ %s ]\nError was %s' % (pfile_name, i_dict['i_nam'],err) ) gui_message.error( m1 ) return f = eval( i_dict['i_nam'] ) men7 = parent.menu.main_menu.addmenuitem( menu_name, 'command', ' ', label = menu_item, command = gui_control.Command( f, i_dict['i_nam'], i_dict['i_dir'] ) ) self.eny6.setentry('') self.eny7.clear() gui_saved_settings.save_menus() self.functions.append(menu_item) self.eny8.setlist(self.functions) #--------------------------------------------- # Delete a function from the main menu bar #--------------------------------------------- def delete_function(self,parent): global l_menu menu_name = self.eny3.get() func_name = self.eny8.get() if len(func_name) == 0: return if gui_message.ask('Do you really want to delete function [%s]?'%func_name):
def restore_menus(parent): try: for i in range(len(user_menus.set.menu_dict)): success = 1 if user_menus.set.menu_dict[i].keys()[0] == 'Menu_name': nam = user_menus.set.menu_dict[i].values()[0] inf = user_menus.set.menu_dict[i + 1].values()[0] menu_name = parent.menu.main_menu.addmenu(nam, inf, tearoff=1) m_dict = {'m_nam': nam, 'm_info': inf, 'm_items': []} l_menu.append(m_dict) if user_menus.set.menu_dict[i].keys()[0] == 'item_Name': i_nam = user_menus.set.menu_dict[i].values()[0] i_dir = user_menus.set.menu_dict[i + 1].values()[0] i_fun = user_menus.set.menu_dict[i + 2].values()[0] i_file = user_menus.set.menu_dict[i + 3].values()[0] i_dict = { 'i_nam': i_nam, 'i_dir': i_dir, 'i_file': i_file, 'i_fun': i_fun } l_item = m_dict['m_items'] pfile_name = nam + '_' + i_dict['i_nam'] if i_dir != '-999': current_directory = os.getcwd() try: eval('os.chdir(i_dir)') except: success = 0 gui_message.error('Could not access module directory') pass eval('os.chdir(current_directory)') try: exec "from %s import %s" % (pfile_name, i_dict['i_nam']) except: success = 0 m1 = ('Cannot access def [ %s ] in .py file [ %s ]' % (i_dict['i_nam'], pfile_name)) gui_message.error(m1) pass try: f = eval(i_dict['i_nam']) parent.menu.main_menu.addmenuitem( nam, 'command', ' ', label=i_nam, command=gui_control.Command(f, i_dict['i_nam'], i_dict['i_dir'])) except: success = 0 pass if success: l_item.append(i_dict) gui_saved_settings.save_menus() except: pass
(pfile_name, i_dict['i_nam'], err)) gui_message.error(m1) return f = eval(i_dict['i_nam']) men7 = parent.menu.main_menu.addmenuitem(menu_name, 'command', ' ', label=menu_item, command=gui_control.Command( f, i_dict['i_nam'], i_dict['i_dir'])) self.eny6.setentry('') self.eny7.clear() gui_saved_settings.save_menus() self.functions.append(menu_item) self.eny8.setlist(self.functions) #--------------------------------------------- # Delete a function from the main menu bar #--------------------------------------------- def delete_function(self, parent): global l_menu menu_name = self.eny3.get() func_name = self.eny8.get() if len(func_name) == 0: return if gui_message.ask('Do you really want to delete function [%s]?' %