definitionList UI support
This commit is contained in:
+8
-5
@@ -12,7 +12,7 @@ class Sense(Data):
|
||||
def __init__(self):
|
||||
self.original_idx = -1
|
||||
self.id = None
|
||||
self.definition = {}
|
||||
self.definitions = []
|
||||
self.labels = []
|
||||
self.translations = []
|
||||
self.examples = []
|
||||
@@ -21,9 +21,7 @@ class Sense(Data):
|
||||
self.original_idx = idx
|
||||
self.id = sense_xml.getAttribute("id") if sense_xml.hasAttribute("id") else None
|
||||
|
||||
for definition in sense_xml.querySelectorAll("definitionList definition"):
|
||||
key = definition.getAttribute("type")
|
||||
self.definition[key] = definition.textContent
|
||||
self.definitions = [{"value": v.textContent, "type": v.getAttribute("type")} for v in sense_xml.querySelectorAll("definitionList definition")]
|
||||
|
||||
self.labels = import_label_list("sense > labelList label", sense_xml)
|
||||
self.translations = from_container_list(
|
||||
@@ -39,13 +37,18 @@ class Sense(Data):
|
||||
|
||||
def view(self, model, sense_num):
|
||||
examples = [example.view(model, self) for example in self.examples]
|
||||
definition = ""
|
||||
for x in self.definitions:
|
||||
if x["type"] == "indicator":
|
||||
definition = x.value
|
||||
break
|
||||
|
||||
result = h("div.elm-div", {}, [
|
||||
h("div.sense-num", {"on": {"click": M.msg(M.ShowSenseMenu, self)}}, str(sense_num + 1)),
|
||||
h("div.sense", {}, [
|
||||
h("span.sense-label-list", { "on": { "click": M.msg(M.ShowSenseLabelEdit, self) }}, [
|
||||
h("span.sense-label", {}, clean_label(slabel)) for _, slabel in self.labels ]),
|
||||
h("span.sense-definition", { "on": { "click": M.msg(M.ShowSenseDefinitionEdit, self) }}, self.definition["indicator"]),
|
||||
h("span.sense-definition", { "on": { "click": M.msg(M.ShowSenseDefinitionEdit, self) }}, definition),
|
||||
h("div", {}, View.view_translations(self.translations, self, model)),
|
||||
h("div", {}, examples)])])
|
||||
return result
|
||||
|
||||
Reference in New Issue
Block a user