1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
import uno
import traceback
from wizards.common.Helper import Helper
class TextSectionHandler(object):
'''Creates a new instance of TextSectionHandler'''
def __init__(self, xMSF, xTextDocument):
self.xMSFDoc = xMSF
self.xTextDocument = xTextDocument
self.xText = xTextDocument.Text
def removeTextSectionbyName(self, SectionName):
try:
xAllTextSections = self.xTextDocument.TextSections
if xAllTextSections.hasByName(SectionName):
oTextSection = self.xTextDocument.TextSections.getByName(
SectionName)
self.removeTextSection(oTextSection)
except Exception, exception:
traceback.print_exc()
def hasTextSectionByName(self, SectionName):
xAllTextSections = self.xTextDocument.TextSections
return xAllTextSections.hasByName(SectionName)
def removeLastTextSection(self):
try:
xAllTextSections = self.xTextDocument.TextSections
oTextSection = xAllTextSections.getByIndex(
xAllTextSections.getCount() - 1)
self.removeTextSection(oTextSection)
except Exception, exception:
traceback.print_exc()
def removeTextSection(self, _oTextSection):
try:
self.xText.removeTextContent(_oTextSection)
except Exception, exception:
traceback.print_exc()
def removeInvisibleTextSections(self):
try:
xAllTextSections = self.xTextDocument.TextSections
TextSectionCount = xAllTextSections.getCount()
i = TextSectionCount - 1
while i >= 0:
xTextContentTextSection = xAllTextSections.getByIndex(i)
if not bool(xTextContentTextSection.getPropertyValue("IsVisible")):
self.xText.removeTextContent(xTextContentTextSection)
i -= 1
except Exception, exception:
traceback.print_exc()
def removeAllTextSections(self):
try:
TextSectionCount = self.xTextDocument.TextSections.Count
xAllTextSections = self.xTextDocument.TextSections
for i in xrange(TextSectionCount - 1, -1, -1):
xTextContentTextSection = xAllTextSections.getByIndex(i)
self.xText.removeTextContent(xTextContentTextSection)
except Exception, exception:
traceback.print_exc()
def breakLinkOfTextSection(self, oTextSection):
try:
oSectionLink = \
uno.createUnoStruct('com.sun.star.text.SectionFileLink')
oSectionLink.FileURL = ""
Helper.setUnoPropertyValues(
oTextSection, ("FileLink", "LinkRegion"),(oSectionLink, ""))
except Exception:
traceback.print_exc()
def linkSectiontoTemplate(
self, TemplateName, SectionName, oTextSection=None):
try:
if oTextSection is not None:
oTextSection = self.xTextDocument.TextSections.getByName(
SectionName)
oSectionLink = \
uno.createUnoStruct('com.sun.star.text.SectionFileLink')
oSectionLink.FileURL = TemplateName
Helper.setUnoPropertyValues(
oTextSection, ("FileLink", "LinkRegion"),
(oSectionLink, SectionName))
NewSectionName = oTextSection.Name
if NewSectionName is not SectionName:
oTextSection.Name = SectionName
except Exception:
traceback.print_exc()
def insertTextSection(self, GroupName, TemplateName, _bAddParagraph):
try:
if _bAddParagraph:
xTextCursor = self.xText.createTextCursor()
self.xText.insertControlCharacter(
xTextCursor, ControlCharacter.PARAGRAPH_BREAK, False)
xTextCursor.collapseToEnd()
xSecondTextCursor = self.xText.createTextCursor()
xSecondTextCursor.gotoEnd(False)
insertTextSection(GroupName, TemplateName, xSecondTextCursor)
except IllegalArgumentException, e:
traceback.print_exc()
def insertTextSection(self, sectionName, templateName, position):
try:
if self.xTextDocument.TextSections.hasByName(sectionName):
xTextSection = \
self.xTextDocument.TextSections.getByName(sectionName)
else:
xTextSection = self.xMSFDoc.createInstance(
"com.sun.star.text.TextSection")
position.getText().insertTextContent(
position, xTextSection, False)
linkSectiontoTemplate(xTextSection, templateName, sectionName)
except Exception, exception:
traceback.print_exc()
|