46 |
|
|
47 |
def Destroy(self): |
def Destroy(self): |
48 |
for layer in self.layers: |
for layer in self.layers: |
49 |
|
self.unsubscribe_layer_channels(layer) |
50 |
layer.Destroy() |
layer.Destroy() |
51 |
self.label_layer.Unsubscribe(CHANGED, self.forward, LAYERS_CHANGED) |
self.label_layer.Unsubscribe(CHANGED, self.forward, LAYERS_CHANGED) |
52 |
Modifiable.Destroy(self) |
Modifiable.Destroy(self) |
53 |
|
|
54 |
def AddLayer(self, layer): |
def AddLayer(self, layer): |
55 |
self.layers.append(layer) |
self.layers.append(layer) |
56 |
for channel in self.forwarded_channels: |
self.subscribe_layer_channels(layer) |
|
layer.Subscribe(channel, self.forward, channel) |
|
57 |
self.changed(LAYERS_CHANGED, self) |
self.changed(LAYERS_CHANGED, self) |
58 |
|
|
59 |
def RemoveLayer(self, layer): |
def RemoveLayer(self, layer): |
60 |
for channel in self.forwarded_channels: |
self.unsubscribe_layer_channels(layer) |
|
layer.Unsubscribe(channel, self.forward, channel) |
|
61 |
self.layers.remove(layer) |
self.layers.remove(layer) |
62 |
self.changed(LAYERS_CHANGED, self) |
self.changed(LAYERS_CHANGED, self) |
63 |
layer.Destroy() |
layer.Destroy() |
64 |
|
|
65 |
|
def subscribe_layer_channels(self, layer): |
66 |
|
"""Subscribe to some of layer's channels.""" |
67 |
|
for channel in self.forwarded_channels: |
68 |
|
layer.Subscribe(channel, self.forward, channel) |
69 |
|
|
70 |
|
def unsubscribe_layer_channels(self, layer): |
71 |
|
"""Unsubscribe to some of layer's channels.""" |
72 |
|
for channel in self.forwarded_channels: |
73 |
|
layer.Unsubscribe(channel, self.forward, channel) |
74 |
|
|
75 |
def LabelLayer(self): |
def LabelLayer(self): |
76 |
"""Return the Map's label layer""" |
"""Return the Map's label layer""" |
77 |
return self.label_layer |
return self.label_layer |
160 |
layer.UnsetModified() |
layer.UnsetModified() |
161 |
self.label_layer.UnsetModified() |
self.label_layer.UnsetModified() |
162 |
|
|
163 |
|
def TreeInfo(self): |
164 |
|
items = [] |
165 |
|
if self.BoundingBox() != None: |
166 |
|
items.append("Extent (lat-lon): (%g, %g, %g, %g)" |
167 |
|
% self.BoundingBox()) |
168 |
|
if self.projection and len(self.projection.params) > 0: |
169 |
|
items.append("Extent (projected): (%g, %g, %g, %g)" |
170 |
|
% self.ProjectedBoundingBox()) |
171 |
|
items.append(("Projection", |
172 |
|
[str(param) |
173 |
|
for param in self.projection.params])) |
174 |
|
|
175 |
|
layers = self.layers[:] |
176 |
|
layers.reverse() |
177 |
|
items.extend(layers) |
178 |
|
|
179 |
|
return ("Map: %s" % self.title, items) |
180 |
|
|