Example #1
0
def generate_add_remove_select_inspect_box_template(window, key, 
		labels, wheres, parent, selector_handle, memory_handle, 
		base_class, function_handles = None, verbosities = None):
	if wheres[0] is wheres[1]: whars = wheres[:-1]
	else: whars = wheres
	_add_func_ = lgb.generate_add_function(base_class, 
					parent = parent, wheres = whars)
	_sel_func_ = lgb.generate_selected_function(wheres[1], 
							lfu.grab_mobj_names(wheres[1]), 
							selector_handle, offset = 1)
	_rem_func_ = lgb.generate_remove_function(_sel_func_, 
						parent = parent, wheres = wheres)
	template = interface_template_gui(
				layout = 'grid', 
				widg_positions = [(0, 0), (0, 2), (1, 2)], 
				widg_spans = [(3, 2), None, None], 
				grid_spacing = 10, 
				widgets = ['mobj_catalog', 'button_set'], 
				verbosities = verbosities, 
				instances = [[wheres[1], memory_handle[0]], None], 
				keys = [[None, memory_handle[1]], None], 
				handles = [selector_handle, None], 
				labels = [None, labels], 
				initials = [[memory_handle[0].__dict__[
							memory_handle[1]]], None], 
				bindings = [None, [lgb.create_reset_widgets_wrapper(
												window, _add_func_), 
								lgb.create_reset_widgets_wrapper(
										window, _rem_func_)]])
	if function_handles:
		for dex, func in zip(range(3), 
			[_add_func_, _sel_func_, _rem_func_]):
				if function_handles[dex]:
					for hand in function_handles[dex]:
						hand[0].__dict__[hand[1]] = func

	return template
Example #2
0
	def interpret_template_radio(self, template, widg_dex):

		def generate_recast_inst_func(dex):

			def recast_inst_func():
				selected = labels[dex]
				new_class = lfu.lookup_pairwise(zip(
					[base._class for base in 
						instance.valid_base_classes], 
					[base._tag for base in 
						instance.valid_base_classes]), selected)
				instance.recast(new_class)
				instance.rewidget(True)

			return recast_inst_func

		try: labels = template.labels[widg_dex]
		except AttributeError: labels = ['...no labels...']
		try: title = template.box_labels[widg_dex]
		except AttributeError: title = ''
		try: initial = template.initials[widg_dex][0]
		except AttributeError: initial = None
		try: inst_tuple = template.instances[widg_dex][0]
		except AttributeError: inst_tuple = None
		try: key = template.keys[widg_dex][0]
		except AttributeError: key = None
		try: rewidget = template.rewidget[widg_dex][0]
		except AttributeError: rewidget = True
		if inst_tuple:
			instance = inst_tuple[1]
			base_class = inst_tuple[0]

		radios = [lgb.create_radios(options = labels, title = title, 
						initial = initial, instance = base_class, 
								key = key, rewidget = rewidget)]
		[rad.clicked.connect(lgb.create_reset_widgets_wrapper(
			self.parent, generate_recast_inst_func(dex))) for 
			dex, rad in enumerate(radios[0].children()[1:])]
		return radios