1 |
# Copyright (C) 2001, 2002, 2003, 2004 by Intevation GmbH |
# Copyright (C) 2001, 2002, 2003, 2004, 2005 by Intevation GmbH |
2 |
# Authors: |
# Authors: |
3 |
# Jan-Oliver Wagner <[email protected]> |
# Jan-Oliver Wagner <[email protected]> |
4 |
# Bernhard Herzog <[email protected]> |
# Bernhard Herzog <[email protected]> |
248 |
% (element, d.name)) |
% (element, d.name)) |
249 |
elif d.conversion == "filename": |
elif d.conversion == "filename": |
250 |
value = os.path.abspath(os.path.join(self.GetDirectory(), |
value = os.path.abspath(os.path.join(self.GetDirectory(), |
251 |
value)) |
self.encode(value))) |
252 |
elif d.conversion == "ascii": |
elif d.conversion == "ascii": |
253 |
value = value.encode("ascii") |
value = value.encode("ascii") |
254 |
elif d.conversion: |
elif d.conversion: |
261 |
return normalized |
return normalized |
262 |
|
|
263 |
def open_shapefile(self, filename): |
def open_shapefile(self, filename): |
264 |
"""Open shapefile, eventually with alternative path.""" |
"""Open shapefile, with alternative path handling. |
265 |
|
|
266 |
|
If a shapefile cannot be opened and an IOError is raised, check for |
267 |
|
an alternative. This alternative can be specified interactively by |
268 |
|
the user or taken from a list of (potential) locations, depending on |
269 |
|
the callback implementation. |
270 |
|
|
271 |
|
The alternative is rechecked. If taken from a list the user |
272 |
|
has to confirm the alternative. |
273 |
|
""" |
274 |
|
|
275 |
|
# Flag if the alternative path was specified interactively / from list. |
276 |
from_list = 0 |
from_list = 0 |
277 |
while 1: |
while 1: |
278 |
try: |
try: |
279 |
store = self.theSession.OpenShapefile(filename) |
store = self.theSession.OpenShapefile(filename) |
280 |
if from_list: |
if from_list: |
281 |
# The correct? path has been guessed from a list |
# A valid path has been guessed from a list |
282 |
# Let the user confirm - or select an alternative. |
# Let the user confirm - or select an alternative. |
283 |
filename, from_list = self.shapefile_callback( |
filename, from_list = self.shapefile_callback( |
284 |
filename, "check") |
filename, "check") |
301 |
second_try = from_list) |
second_try = from_list) |
302 |
if filename is None: |
if filename is None: |
303 |
raise LoadCancelled |
raise LoadCancelled |
|
print filename |
|
304 |
else: |
else: |
305 |
raise |
raise |
306 |
return store |
return store |
508 |
filename = os.path.join(self.GetDirectory(), filename) |
filename = os.path.join(self.GetDirectory(), filename) |
509 |
filename = self.encode(filename) |
filename = self.encode(filename) |
510 |
visible = self.encode(attrs.get((None, 'visible'), "true")) != "false" |
visible = self.encode(attrs.get((None, 'visible'), "true")) != "false" |
511 |
|
opacity = float(attrs.get((None, 'opacity'), "1")) |
512 |
|
masktype = str(attrs.get((None, 'masktype'), "bit")) |
513 |
|
|
514 |
self.aLayer = layer_class(title, filename, visible = visible) |
masktypes = {"none": layer_class.MASK_NONE, |
515 |
|
"bit": layer_class.MASK_BIT, |
516 |
|
"alpha": layer_class.MASK_ALPHA} |
517 |
|
|
518 |
|
self.aLayer = layer_class(title, filename, |
519 |
|
visible = visible, |
520 |
|
opacity = opacity, |
521 |
|
masktype = masktypes[masktype]) |
522 |
|
|
523 |
def end_rasterlayer(self, name, qname): |
def end_rasterlayer(self, name, qname): |
524 |
self.aMap.AddLayer(self.aLayer) |
self.aMap.AddLayer(self.aLayer) |
579 |
del self.cl_group, self.cl_prop |
del self.cl_group, self.cl_prop |
580 |
|
|
581 |
def start_clrange(self, name, qname, attrs): |
def start_clrange(self, name, qname, attrs): |
582 |
|
attrs = self.check_attrs(name, attrs, |
583 |
|
[AttrDesc("range", False, None), |
584 |
|
AttrDesc("min", False, None), |
585 |
|
AttrDesc("max", False, None)]) |
586 |
|
|
587 |
range = attrs.get((None, 'range'), None) |
range = attrs['range'] |
588 |
# for backward compatibility (min/max are not saved) |
# for backward compatibility (min/max are not saved) |
589 |
min = attrs.get((None, 'min'), None) |
min = attrs['min'] |
590 |
max = attrs.get((None, 'max'), None) |
max = attrs['max'] |
591 |
|
|
592 |
try: |
try: |
593 |
if range is not None: |
if range is not None: |