76 |
|
|
77 |
def __init__(self): |
def __init__(self): |
78 |
self.chars = '' |
self.chars = '' |
|
self.__parser = None |
|
79 |
self.__directory = "" |
self.__directory = "" |
80 |
self.__dispatchers = {} |
self.__dispatchers = {} |
81 |
|
|
90 |
self.__directory = os.path.dirname(filename) |
self.__directory = os.path.dirname(filename) |
91 |
self.__file = open(filename) |
self.__file = open(filename) |
92 |
|
|
93 |
if self.__parser is None: |
parser = make_parser() |
94 |
self.__parser = make_parser() |
parser.setContentHandler(self) |
95 |
self.__parser.setContentHandler(self) |
parser.setErrorHandler(ErrorHandler()) |
96 |
self.__parser.setErrorHandler(ErrorHandler()) |
parser.setFeature(xml.sax.handler.feature_namespaces, 1) |
97 |
self.__parser.setFeature(xml.sax.handler.feature_namespaces, 1) |
|
98 |
|
# |
99 |
# |
# Well, this isn't pretty, but it appears that if you |
100 |
# Well, this isn't pretty, but it appears that if you |
# use Python 2.2 without the site-package _xmlplus then |
101 |
# use Python 2.2 without the site-package _xmlplus then |
# the following will fail, and without them it will work. |
102 |
# the following will fail, and without them it will work. |
# However, if you do have the site-package and you don't |
103 |
# However, if you do have the site-package and you don't |
# call these functions, the reader raises an exception |
104 |
# call these functions, the reader raises an exception |
# |
105 |
# |
# The reason we set these to 0 in the first place is |
106 |
# The reason we set these to 0 in the first place is |
# because there is an unresolved issue with external |
107 |
# because there is an unresolved issue with external |
# entities causing an exception in the reader |
108 |
# entities causing an exception in the reader |
# |
109 |
# |
try: |
110 |
try: |
parser.setFeature(xml.sax.handler.feature_validation,0) |
111 |
self.__parser.setFeature(xml.sax.handler.feature_validation,0) |
parser.setFeature(xml.sax.handler.feature_external_ges,0) |
112 |
self.__parser.setFeature(xml.sax.handler.feature_external_ges,0) |
parser.setFeature(xml.sax.handler.feature_external_pes,0) |
113 |
self.__parser.setFeature(xml.sax.handler.feature_external_pes,0) |
except SAXNotRecognizedException: |
114 |
except SAXNotRecognizedException: |
pass |
|
pass |
|
115 |
|
|
116 |
self.__parser.parse(self.__file) |
parser.parse(self.__file) |
117 |
|
|
118 |
self.close() |
self.close() |
119 |
|
|
228 |
title = attrs.get((None, 'title'), "") |
title = attrs.get((None, 'title'), "") |
229 |
filename = attrs.get((None, 'filename'), "") |
filename = attrs.get((None, 'filename'), "") |
230 |
filename = os.path.join(self.GetDirectory(), filename) |
filename = os.path.join(self.GetDirectory(), filename) |
231 |
|
visible = attrs.get((None, 'visible'), "true") |
232 |
fill = parse_color(attrs.get((None, 'fill'), "None")) |
fill = parse_color(attrs.get((None, 'fill'), "None")) |
233 |
stroke = parse_color(attrs.get((None, 'stroke'), "#000000")) |
stroke = parse_color(attrs.get((None, 'stroke'), "#000000")) |
234 |
stroke_width = int(attrs.get((None, 'stroke_width'), "1")) |
stroke_width = int(attrs.get((None, 'stroke_width'), "1")) |
235 |
self.aLayer = layer_class(title, |
self.aLayer = layer_class(title, |
236 |
self.theSession.OpenShapefile(filename), |
self.theSession.OpenShapefile(filename), |
237 |
fill = fill, stroke = stroke, |
fill = fill, stroke = stroke, |
238 |
lineWidth = stroke_width) |
lineWidth = stroke_width, |
239 |
|
visible = visible != "false") |
240 |
|
|
241 |
self.__projReceiver = self.aLayer |
self.__projReceiver = self.aLayer |
242 |
|
|