def set_value(self, value): # value is a list of enums. Pick the first one, and get the # MasterElement that it corresponds to, and set the mapchooser # and funchooser accordingly. This assumes that all enums in # value correspond to elements with the same orders. el = masterelement.getMasterElementFromEnum(value[0]) self.mapchooser.set_state( ` el.map_order() `) self.funchooser.set_state( ` el.fun_order() `) self.build(interactive=0) for val, (elclass, ewidget) in zip(value, self.classwidgets): ewidget.set_state(val.name) self.widgetChanged(validity=1, interactive=0)
def set_value(self, value): # value is a list of enums. Pick the first one, and get the # MasterElement that it corresponds to, and set the mapchooser # and funchooser accordingly. This assumes that all enums in # value correspond to elements with the same orders. el = masterelement.getMasterElementFromEnum(value[0]) self.mapchooser.set_state(`el.map_order()`) self.funchooser.set_state(`el.fun_order()`) self.build(interactive=0) for val, (elclass, ewidget) in zip(value, self.classwidgets): ewidget.set_state(val.name) self.widgetChanged(validity=1, interactive=0)
def build(self, interactive): debug.mainthreadTest() elclasses = masterelement.getMasterElementEnumClasses() elgeometries = masterelement.getMasterElementGeometries() nclasses = len(elclasses) # Build the widgets if self.table is None or nclasses != self.nclasses: self.nclasses = nclasses if self.table: self.table.destroy() self.tablelabels = [] self.table = gtk.Table(rows=2 + nclasses, columns=2) self.gtk.add(self.table) # Choosers for mapping and interpolation order self.mapchooser = chooser.ChooserWidget([], callback=self.orderCB, name="Map") self.funchooser = chooser.ChooserWidget([], callback=self.orderCB, name="Func") label = gtk.Label('mapping order') tooltips.set_tooltip_text( label, 'Polynomial order of the functions used to map master elements to physical space.' ) label.set_alignment(1.0, 0.5) self.tablelabels.append(label) self.table.attach(label, 0, 1, 0, 1, xpadding=5, xoptions=gtk.FILL) self.table.attach(self.mapchooser.gtk, 1, 2, 0, 1, xpadding=5, xoptions=gtk.EXPAND | gtk.FILL) label = gtk.Label('interpolation order:') tooltips.set_tooltip_text( label, 'Polynomial order of the functions used to interpolate within elements.' ) label.set_alignment(1.0, 0.5) self.tablelabels.append(label) self.table.attach(label, 0, 1, 1, 2, xpadding=5, xoptions=gtk.FILL) self.table.attach(self.funchooser.gtk, 1, 2, 1, 2, xpadding=5, xoptions=gtk.EXPAND | gtk.FILL) # Choosers for each element geometry row = 2 self.classwidgets = [] for geometry, elclass in zip(elgeometries, elclasses): label = gtk.Label( ` geometry ` + '-cornered element:') tooltips.set_tooltip_text( label, 'Type of finite element to use for %d cornered Skeleton elements' % geometry) label.set_alignment(1.0, 0.5) self.tablelabels.append(label) self.table.attach(label, 0, 1, row, row + 1, xoptions=gtk.FILL) ewidget = chooser.ChooserWidget([], name="%d-cornered" % geometry) self.classwidgets.append((elclass, ewidget)) self.table.attach(ewidget.gtk, 1, 2, row, row + 1, xpadding=5, xoptions=gtk.EXPAND | gtk.FILL) row += 1 # Set the allowed values for each chooser. # Find out which mapping and interpolation orders have to be listed. maporderdict = {} funorderdict = {} for elclass in elclasses: for elname in elclass.names: el = masterelement.getMasterElementFromEnum(elclass(elname)) maporderdict[el.map_order()] = 1 funorderdict[el.fun_order()] = 1 maporders = maporderdict.keys() maporders.sort() funorders = funorderdict.keys() funorders.sort() # List the orders in the widgets self.mapchooser.update([ ` order ` for order in maporders]) self.funchooser.update([ ` order ` for order in funorders]) try: current_map = int(self.mapchooser.get_value()) current_fun = int(self.funchooser.get_value()) except: # If the choosers don't have values, it's because there # aren't any elements defined. self.widgetChanged(validity=0, interactive=interactive) else: # Find and list the element types for the current orders ok = True for elclass, ewidget in self.classwidgets: elements = masterelement.getMasterElementsFromEnumClass( elclass) okels = [ el for el in elements if el.map_order() == current_map and el.fun_order() == current_fun ] ok = ok and len(okels) > 0 ewidget.update([el.name() for el in okels], elclass.helpdict) self.widgetChanged(validity=ok, interactive=interactive)
def build(self, interactive): debug.mainthreadTest() elclasses = masterelement.getMasterElementEnumClasses() elgeometries = masterelement.getMasterElementGeometries() nclasses = len(elclasses) # Build the widgets if self.table is None or nclasses != self.nclasses: self.nclasses = nclasses if self.table: self.table.destroy() self.tablelabels = [] self.table = gtk.Table(rows=2+nclasses, columns=2) self.gtk.add(self.table) # Choosers for mapping and interpolation order self.mapchooser = chooser.ChooserWidget([], callback=self.orderCB, name="Map") self.funchooser = chooser.ChooserWidget([], callback=self.orderCB, name="Func") label = gtk.Label('mapping order') tooltips.set_tooltip_text(label,'Polynomial order of the functions used to map master elements to physical space.') label.set_alignment(1.0, 0.5) self.tablelabels.append(label) self.table.attach(label, 0, 1, 0, 1, xpadding=5, xoptions=gtk.FILL) self.table.attach(self.mapchooser.gtk, 1, 2, 0, 1, xpadding=5, xoptions=gtk.EXPAND|gtk.FILL) label = gtk.Label('interpolation order:') tooltips.set_tooltip_text(label,'Polynomial order of the functions used to interpolate within elements.') label.set_alignment(1.0, 0.5) self.tablelabels.append(label) self.table.attach(label, 0, 1, 1, 2, xpadding=5, xoptions=gtk.FILL) self.table.attach(self.funchooser.gtk, 1, 2, 1, 2, xpadding=5, xoptions=gtk.EXPAND|gtk.FILL) # Choosers for each element geometry row = 2 self.classwidgets = [] for geometry, elclass in zip(elgeometries, elclasses): label = gtk.Label(`geometry`+'-cornered element:') tooltips.set_tooltip_text(label, 'Type of finite element to use for %d cornered Skeleton elements' % geometry) label.set_alignment(1.0, 0.5) self.tablelabels.append(label) self.table.attach(label, 0,1, row,row+1, xoptions=gtk.FILL) ewidget = chooser.ChooserWidget([], name="%d-cornered"%geometry) self.classwidgets.append((elclass, ewidget)) self.table.attach(ewidget.gtk, 1,2, row,row+1, xpadding=5, xoptions=gtk.EXPAND|gtk.FILL) row += 1 # Set the allowed values for each chooser. # Find out which mapping and interpolation orders have to be listed. maporderdict = {} funorderdict = {} for elclass in elclasses: for elname in elclass.names: el = masterelement.getMasterElementFromEnum(elclass(elname)) maporderdict[el.map_order()] = 1 funorderdict[el.fun_order()] = 1 maporders = maporderdict.keys() maporders.sort() funorders = funorderdict.keys() funorders.sort() # List the orders in the widgets self.mapchooser.update([`order` for order in maporders])