Moving view into classes

This commit is contained in:
2020-02-16 23:18:07 +01:00
parent e3792005ba
commit 8c2197e78b
7 changed files with 126 additions and 91 deletions

View File

@@ -31,25 +31,6 @@ class View:
h("button.blk", {"on": { "click": lambda _: check_export(self.model) } }, "CHK"),
View.view_menu(self.model.menu_location, self.model.menu_target, self.model.entry),
View.view_modal(self.model.modal_shown, self.model.modal)])
@staticmethod
def view_entry(entry, model):
view_sense_list = [View.view_sense(sense, idx, model) for idx, sense in enumerate(entry.senses)]
buttons_left = View.view_entry_button_section(entry, model)
buttons_right = View.view_toggle_buttons(model)
return h("div#entry", {}, [
h("div#entry-status", {}, entry.status),
h("div#entry-header", {}, [
h("span#headword", {}, entry.headword),
h("span#grammar", {}, entry.grammar),
h("span#measure", {}, entry.get_measure_text())]),
h("div.flex.five", {}, [
h("div.four-fifth", {}, buttons_left),
h("div.one-fifth", {}, buttons_right)]),
h("div#sense-container", {}, view_sense_list),
h("button.add-button", {"on": {"click": msg(AddSense())}}, "+")])
@staticmethod
@@ -61,59 +42,7 @@ class View:
h("span.button.toggle", {"on": {"click": msg(ToggleClusters)}}, txt_clusters)]
@staticmethod
def view_entry_button_section(entry, model):
clk = lambda cls: {"on": {"click": msg(cls)}}
buttons = [
h("button.normal", clk(ShowVariantsEdit()), "Variante"),
h("button.success", clk(ShowRelatedEntriesEdit()), "Povezano"),
h("button.success", clk(ShowEntryLabelsEdit()), "Oznake"),
h("button.normal", clk(ShowCommentEdit()), "Opombe")]
view_buttons = []
view_table = []
if len(entry.variants) == 0:
view_buttons.append(buttons[0])
else:
view_table.append((buttons[0], ", ".join(entry.variants)))
if len(entry.related_entries) == 0:
view_buttons.append(buttons[1])
else:
view_table.append((buttons[1], ", ".join(entry.related_entries)))
if len(entry.labels) == 0:
view_buttons.append(buttons[2])
else:
labels = ", ".join([clean_label(val) for _, val in entry.labels])
view_table.append((buttons[2], labels))
if entry.comment == "":
view_buttons.append(buttons[3])
else:
view_table.append((buttons[3], entry.comment))
table_rows = [
h("tr", {}, [ h("td", {}, btn), h("td", {}, content)])
for btn, content in view_table]
view_buttons.append(h("table", {}, table_rows))
return h("div", {}, view_buttons)
@staticmethod
def view_sense(sense, senseNum, model):
examples = [View.view_example(example, sense, model) for example in sense.examples]
result = h("div.elm-div", {}, [
h("div.sense-num", {"on": {"click": msg(ShowSenseMenu(sense))}}, str(senseNum + 1)),
h("div.sense", {}, [
h("span.sense-label-list", { "on": { "click": msg(ShowSenseLabelEdit(sense)) }}, [
h("span.sense-label", {}, clean_label(slabel)) for _, slabel in sense.labels ]),
h("span.sense-definition", { "on": { "click": msg(ShowSenseDefinitionEdit(sense)) }}, sense.definition["indicator"]),
h("div", {}, View.view_translations(sense.translations, sense, model)),
h("div", {}, examples)])])
return result
@staticmethod
def view_example(example, sense, model):