Skip to content
This repository was archived by the owner on Jun 14, 2019. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions xmind/core/const.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@
TAG_POSITION = "position"
TAG_CHILDREN = "children"
TAG_NOTES = "notes"
TAG_LABELS = "labels"
TAG_LABEL = "label"
TAG_RELATIONSHIP = "relationship"
TAG_RELATIONSHIPS = "relationships"
TAG_MARKERREFS = "marker-refs"
Expand Down
44 changes: 44 additions & 0 deletions xmind/core/labels.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#!/usr/bin/env python
#-*- coding: utf-8 -*-

"""
xmind.core.labels
~~~~~~~~~~~~~~~~

:copyright:
:license:

"""

__author__ = "axel.voitier@gmail.com <Axel Voitier>"

from . import const

from .mixin import TopicMixinElement


class LabelsElement(TopicMixinElement):
TAG_NAME = const.TAG_LABELS

def __init__(self, node=None, ownerTopic=None):
super(LabelsElement, self).__init__(node, ownerTopic)


class LabelElement(TopicMixinElement):
TAG_NAME = const.TAG_LABEL

def __init__(self, node=None, ownerTopic=None):
super(LabelElement, self).__init__(node, ownerTopic)

def getLabel(self):
return self.getTextContent()

def setLabel(self, label_text):
self.setTextContent(label_text)


def main():
pass

if __name__ == '__main__':
main()
29 changes: 29 additions & 0 deletions xmind/core/topic.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
from .markerref import MarkerRefElement
from .markerref import MarkerRefsElement
from .markerref import MarkerId
from .labels import LabelsElement, LabelElement

from .. import utils

Expand Down Expand Up @@ -53,6 +54,9 @@ def _get_title(self):
def _get_markerrefs(self):
return self.getFirstChildNodeByTagName(const.TAG_MARKERREFS)

def _get_labels(self):
return self.getFirstChildNodeByTagName(const.TAG_LABELS)

def _get_position(self):
return self.getFirstChildNodeByTagName(const.TAG_POSITION)

Expand Down Expand Up @@ -134,6 +138,31 @@ def addMarker(self, markerId):
mre.setMarkerId(markerId)
tmp.appendChild(mre)
return mre

def getLabels(self):
labels_ = self._get_labels()
if not labels_:
return None
tmp = LabelsElement(labels_, self.getOwnerWorkbook())
labels = tmp.getChildNodesByTagName(const.TAG_LABEL)
label_list = []
if labels:
for i in labels:
label_list.append(LabelElement(i, self.getOwnerWorkbook()))
return label_list

def addLabel(self, label_text):
labels_ = self._get_labels()
if not labels_:
tmp = LabelsElement(None, self.getOwnerWorkbook())
self.appendChild(tmp)
else:
tmp = LabelsElement(labels_, self.getOwnerWorkbook())

label = LabelElement(None, self.getOwnerWorkbook())
label.setLabel(label_text)
tmp.appendChild(label)
return label

def setFolded(self):
self.setAttribute(const.ATTR_BRANCH, const.VAL_FOLDED)
Expand Down