def create_page_3(setting): filter_by_columns = setting.get_value("filter_by") filter_by_columns.sort() s_widget = settingswindow.SettingWidget() def f_validate(numpy_type, value): try: utils.convert_to_type(numpy_type, value) except ValueError: return "'{0}' is not convertible to '{1}' type.".format( value, utils.numpy_type_to_string(numpy_type)) for idx, col_idx in enumerate(filter_by_columns): if idx > 0: s_widget.add_separator() s_widget.add_entry("filter_value{0}".format(col_idx), table.header[col_idx], "", validator=partial(f_validate, table.types[col_idx])) s_widget.add_radiobuttons("cmp_fn{0}".format(col_idx), "Compare", [("Equal", lambda x, y: x == y), ("Not equal", lambda x, y: x != y), ("Less than", lambda x, y: x < y), ("Greater than", lambda x, y: x > y)], ncols=2) return s_widget
def create_page_2(setting): items = [(label, idx, False) for idx, label in enumerate(table.header)] s_widget = settingswindow.SettingWidget() s_widget.add_checkbuttons_list( "filter_by", "Filter by columns", items, ["Column", "Select?"]) return s_widget
def page_2(setting): w = settingswindow.SettingWidget() data = [("Event", "Event", True), ("Time", "Time", True), ("Duration", "Duration", True), ("Process", "Process", True), ("ID", "ID", True)] counters = [(place_counter_name(p), place_counter_name(p), False) for p in tracelog.project.nets[0].places() if p.trace_tokens] data += counters w.add_checkbuttons("columns", "Columns", data) return w
def page_1(setting): w = settingswindow.SettingWidget() data = [(t.get_name_or_id(), t, False) for t in tracelog.project.nets[0].transitions()] w.add_checkbuttons_list("transitions", "Transitions", data, ["Transition", "Export fire?"]) data = [ ("{0}/{1}".format(p.get_name_or_id(), f.name), (p, i), False) for p in tracelog.project.nets[0].places() for i, f in enumerate(p.trace_tokens_functions) # only function that does not return PyObject values if p.trace_tokens and f.return_numpy_type != 'O' ] w.add_checkbuttons_list("place_functions", "Place\nFunctions", data, ["Place/Function", "Export add token?"]) return w
def show_csv_settings_dialog(parent_window): sw = settingswindow.SettingWidget() sw.add_combobox("delimiter", "Delimiter", [("Tab", "\t"), ("Comma", ","), ("Semicolon", ";"), ("Space", " ")], default=1) sw.add_combobox("quotechar", "Quote char", [("Single quotes", "\'"), ("Double quotes", "\"")], default=1) sw.add_radiobuttons("header", "Header", [("With header", True), ("Without header", False)], default=0, ncols=2) sw.add_radiobuttons("types", "Types", [("With types", True), ("Without types", False)], default=0, ncols=2) dialog = settingswindow.BasicSettingDialog(sw, "Setting", parent_window) dialog.set_size_request(400, 250) dialog.add_button(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL) dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK, True) response = dialog.run() if response == gtk.RESPONSE_OK: dialog.destroy() delimiter = dialog.get_setting("delimiter") quotechar = dialog.get_setting("quotechar") has_header = dialog.get_setting("header") has_types = dialog.get_setting("types") return (delimiter, quotechar, has_header, has_types) dialog.destroy() return None