/[thuban]/trunk/thuban/Thuban/Model/layer.py
ViewVC logotype

Diff of /trunk/thuban/Thuban/Model/layer.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 492 by jonathan, Mon Mar 10 10:44:57 2003 UTC revision 610 by jonathan, Fri Apr 4 13:56:59 2003 UTC
# Line 16  from Thuban import _ Line 16  from Thuban import _
16  import shapelib, shptree  import shapelib, shptree
17    
18  from messages import LAYER_PROJECTION_CHANGED, LAYER_LEGEND_CHANGED, \  from messages import LAYER_PROJECTION_CHANGED, LAYER_LEGEND_CHANGED, \
19       LAYER_VISIBILITY_CHANGED       LAYER_VISIBILITY_CHANGED, LAYER_CHANGED
20    
21  from color import Color  from color import Color
22    
# Line 107  class Layer(BaseLayer): Line 107  class Layer(BaseLayer):
107      """      """
108    
109      def __init__(self, title, filename, projection = None,      def __init__(self, title, filename, projection = None,
110                   fill = Color.None,                   fill = Color.Transparent,
111                   stroke = Color.Black,                   stroke = Color.Black,
112                   lineWidth = 1,                   lineWidth = 1,
113                   visible = 1):                   visible = 1):
# Line 118  class Layer(BaseLayer): Line 118  class Layer(BaseLayer):
118          projection -- the projection object. Its Inverse method is          projection -- the projection object. Its Inverse method is
119                 assumed to map the layer's coordinates to lat/long                 assumed to map the layer's coordinates to lat/long
120                 coordinates                 coordinates
121          fill -- the fill color or Color.None if the shapes are not filled          fill -- the fill color or Color.Transparent if the shapes are
122          stroke -- the stroke color or Color.None if the shapes are not stroked                  not filled
123            stroke -- the stroke color or Color.Transparent if the shapes
124                    are not stroked
125          visible -- boolean. If true the layer is visible.          visible -- boolean. If true the layer is visible.
126    
127          colors are expected to be instances of Color class          colors are expected to be instances of Color class
# Line 147  class Layer(BaseLayer): Line 149  class Layer(BaseLayer):
149          # tries to set its parent layer the variable will exist          # tries to set its parent layer the variable will exist
150          #          #
151          self.__classification = None          self.__classification = None
152            self.__setClassLock = False
153    
154    
155          self.SetClassification(None)          self.SetClassification(None)
# Line 190  class Layer(BaseLayer): Line 193  class Layer(BaseLayer):
193              self.shapefile.close()              self.shapefile.close()
194              self.shapefile = None              self.shapefile = None
195              self.shapetree = None              self.shapetree = None
196            self.SetClassification(None)
197          self.table.Destroy()          self.table.Destroy()
198    
199      def BoundingBox(self):      def BoundingBox(self):
# Line 276  class Layer(BaseLayer): Line 280  class Layer(BaseLayer):
280          If 'clazz' is None a default classification is created          If 'clazz' is None a default classification is created
281          """          """
282    
283            # prevent infinite recursion when calling SetLayer()
284            if self.__setClassLock: return
285    
286            self.__setClassLock = True
287    
288          if clazz is None:          if clazz is None:
289                if self.__classification is not None:
290                    self.__classification.SetLayer(None)
291              self.__classification = classification.Classification()              self.__classification = classification.Classification()
292          else:          else:
   
             # prevent infinite recursion when calling SetLayer()  
             if clazz == self.__classification:  
                 return  
   
293              self.__classification = clazz              self.__classification = clazz
294              self.__classification.SetLayer(self)              try:
295                    self.__classification.SetLayer(self)
296                except ValueError:
297                    self.__setClassLock = False
298                    raise ValueError
299    
300            self.changed(LAYER_CHANGED, self)
301    
302          self.changed(LAYER_LEGEND_CHANGED, self)          self.__setClassLock = False
303    
304      def ClassChanged(self):      def ClassChanged(self):
305          """Called from the classification object when it has changed."""          """Called from the classification object when it has changed."""
306          self.changed(LAYER_LEGEND_CHANGED, self)          self.changed(LAYER_CHANGED, self)
307    
308      def TreeInfo(self):      def TreeInfo(self):
309          items = []          items = []

Legend:
Removed from v.492  
changed lines
  Added in v.610

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26