class RetiredFilterWdg(SwapDisplayWdg): ''' a button that triggers the display of retired items''' def __init__(self, prefix='', refresh=True): name = 'show_retired' if prefix: name = '%s_show_retired' %prefix self.hidden = HiddenWdg(name,'') if refresh: self.hidden.set_persistence() self.refresh = refresh super(RetiredFilterWdg, self).__init__() def _get_script(self, value): script = "var x=get_elements('%s'); x.set_value('%s')"\ %(self.hidden.get_name(), value) if self.refresh: script = "%s;document.form.submit()" %script return script def get_display(self): on_icon = IconWdg('click to show retired', icon="/context/icons/common/hide_retire.png") off_icon = IconWdg('click to hide retired', icon=IconWdg.RETIRE) off_icon.add(self.hidden) on_script = self._get_script('true') off_script = self._get_script('false') # swap the icons if it is clicked on if self.get_value()=='true': self.set_display_widgets(off_icon, on_icon) self.add_action_script(off_script, on_script) else: self.set_display_widgets(on_icon, off_icon) self.add_action_script(on_script, off_script) return super(RetiredFilterWdg, self).get_display() def get_value(self): return self.hidden.get_value() def alter_search(self, search): if self.get_value() == 'true': search.set_show_retired(True)
class RetiredFilterWdg(SwapDisplayWdg): ''' a button that triggers the display of retired items''' def __init__(self, prefix='', refresh=True): name = 'show_retired' if prefix: name = '%s_show_retired' % prefix self.hidden = HiddenWdg(name, '') if refresh: self.hidden.set_persistence() self.refresh = refresh super(RetiredFilterWdg, self).__init__() def _get_script(self, value): script = "var x=get_elements('%s'); x.set_value('%s')"\ %(self.hidden.get_name(), value) if self.refresh: script = "%s;document.form.submit()" % script return script def get_display(self): on_icon = IconWdg('click to show retired', icon="/context/icons/common/hide_retire.png") off_icon = IconWdg('click to hide retired', icon=IconWdg.RETIRE) off_icon.add(self.hidden) on_script = self._get_script('true') off_script = self._get_script('false') # swap the icons if it is clicked on if self.get_value() == 'true': self.set_display_widgets(off_icon, on_icon) self.add_action_script(off_script, on_script) else: self.set_display_widgets(on_icon, off_icon) self.add_action_script(on_script, off_script) return super(RetiredFilterWdg, self).get_display() def get_value(self): return self.hidden.get_value() def alter_search(self, search): if self.get_value() == 'true': search.set_show_retired(True)
def get_display(my): new_tab_names = my.tab_names app_css = app_style = None if WebContainer.get_web().get_app_name_by_uri() != 'Browser': app_css = 'smaller' app_style = 'padding: 0px 2px 3px 2px' div = my.div div.set_style("margin-top: 10px; margin-bottom: 20px") # add some spacing span = SpanWdg(css='tab_front') div.add(span) selected_widget = None # figure out which is the selected one selected_index = 0 for i in range(0, len(new_tab_names)): tab_name = new_tab_names[i] if tab_name == my.tab_value: selected_index = i break for i in range(0, len(new_tab_names)): tab_name = new_tab_names[i] widget = my.get_widget(tab_name) tab = SpanWdg() if i == selected_index: # selected tab tab.set_class("%s_selected" %my.get_style_prefix()) if app_style: tab.add_style(app_style) selected_widget = widget else: # unselected tab tab.set_class("%s_unselected" %my.get_style_prefix()) if app_style: tab.add_style(app_style) tab.add( my.get_header(tab_name, selected_index, app_css)) div.add(tab) # FIXME: hide this for now #div.add( my.get_add_tab_wdg() ) tab_hidden = HiddenWdg(my.tab_key) tab_hidden.set_persistence() # explicitly records this value for init-type submit tab_hidden._set_persistent_values([my.tab_value]) # TODO: not sure if this is legal ... This is rather redundant, # but set_value is a pretty complex function. In the end this # forces it to be set to a value even though widget settings is disabled value = tab_hidden.get_value() if value: tab_hidden.set_value(value) div.add(tab_hidden) # if an error occured, draw the error if my.error_wdg: div.add(my.error_wdg) else: # display the content content_div = HtmlElement.div() if my.content_height: content_div.add_style("height: %spx" % my.content_height) content_div.add_style("padding: 10px 0 10px 0") content_div.add_style("overflow: auto") content_div.add_style("border-style: solid") content_div.set_class("%s_content" %my.get_style_prefix()) content_div.add_style("display: block") try: content = my.get_content(selected_widget) if isinstance( content, Widget): content = content.get_buffer_display() except Exception, e: my.handle_exception(e) # TODO: need some way to make this automatic in Widget. #if my.tab_path: # last_buffer = len(my.tab_path)+1 # buffer = my.get_buffer_on_exception(last_buffer) #else: buffer = my.get_buffer_on_exception() div.add(buffer) content = my.error_wdg content_div.add( content ) div.add(content_div)
def get_display(my): new_tab_names = my.tab_names app_css = app_style = None if WebContainer.get_web().get_app_name_by_uri() != 'Browser': app_css = 'smaller' app_style = 'padding: 0px 2px 3px 2px' div = my.div div.set_style("margin-top: 10px; margin-bottom: 20px") # add some spacing span = SpanWdg(css='tab_front') div.add(span) selected_widget = None # figure out which is the selected one selected_index = 0 for i in range(0, len(new_tab_names)): tab_name = new_tab_names[i] if tab_name == my.tab_value: selected_index = i break for i in range(0, len(new_tab_names)): tab_name = new_tab_names[i] widget = my.get_widget(tab_name) tab = SpanWdg() if i == selected_index: # selected tab tab.set_class("%s_selected" % my.get_style_prefix()) if app_style: tab.add_style(app_style) selected_widget = widget else: # unselected tab tab.set_class("%s_unselected" % my.get_style_prefix()) if app_style: tab.add_style(app_style) tab.add(my.get_header(tab_name, selected_index, app_css)) div.add(tab) # FIXME: hide this for now #div.add( my.get_add_tab_wdg() ) tab_hidden = HiddenWdg(my.tab_key) tab_hidden.set_persistence() # explicitly records this value for init-type submit tab_hidden._set_persistent_values([my.tab_value]) # TODO: not sure if this is legal ... This is rather redundant, # but set_value is a pretty complex function. In the end this # forces it to be set to a value even though widget settings is disabled value = tab_hidden.get_value() if value: tab_hidden.set_value(value) div.add(tab_hidden) # if an error occured, draw the error if my.error_wdg: div.add(my.error_wdg) else: # display the content content_div = HtmlElement.div() if my.content_height: content_div.add_style("height: %spx" % my.content_height) content_div.add_style("padding: 10px 0 10px 0") content_div.add_style("overflow: auto") content_div.add_style("border-style: solid") content_div.set_class("%s_content" % my.get_style_prefix()) content_div.add_style("display: block") try: content = my.get_content(selected_widget) if isinstance(content, Widget): content = content.get_buffer_display() except Exception, e: my.handle_exception(e) # TODO: need some way to make this automatic in Widget. #if my.tab_path: # last_buffer = len(my.tab_path)+1 # buffer = my.get_buffer_on_exception(last_buffer) #else: buffer = my.get_buffer_on_exception() div.add(buffer) content = my.error_wdg content_div.add(content) div.add(content_div)