/[thuban]/branches/WIP-pyshapelib-bramz/Thuban/Model/load.py
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/Thuban/Model/load.py

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

revision 723 by bh, Thu Apr 24 15:31:53 2003 UTC revision 763 by bh, Tue Apr 29 10:55:26 2003 UTC
# Line 76  class XMLReader(xml.sax.handler.ContentH Line 76  class XMLReader(xml.sax.handler.ContentH
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    
# Line 91  class XMLReader(xml.sax.handler.ContentH Line 90  class XMLReader(xml.sax.handler.ContentH
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    
120      def close(self):      def close(self):
121          self.__file.close()          self.__file.close()
122                    
123      def GetFileName(self):      def GetFilename(self):
124          if hasattr(self.__file, "name"):          if hasattr(self.__file, "name"):
125              return self.__file.name              return self.__file.name
126    
# Line 201  class SessionLoader(XMLReader): Line 199  class SessionLoader(XMLReader):
199      def start_map(self, name, qname, attrs):      def start_map(self, name, qname, attrs):
200          """Start a map."""          """Start a map."""
201          self.aMap = Map(attrs.get((None, 'title'), None))          self.aMap = Map(attrs.get((None, 'title'), None))
202            self.__projReceiver = self.aMap
203    
204      def end_map(self, name, qname):      def end_map(self, name, qname):
205          self.theSession.AddMap(self.aMap)          self.theSession.AddMap(self.aMap)
206            self.__projReceiver = None
207    
208      def start_projection(self, name, qname, attrs):      def start_projection(self, name, qname, attrs):
209            self.ProjectionName = attrs.get((None, 'name'), None)
210          self.ProjectionParams = [ ]          self.ProjectionParams = [ ]
211    
212      def end_projection(self, name, qname):      def end_projection(self, name, qname):
213          self.aMap.SetProjection(Projection(self.ProjectionParams))          self.__projReceiver.SetProjection(
214                Projection(self.ProjectionParams, self.ProjectionName))
215    
216      def start_parameter(self, name, qname, attrs):      def start_parameter(self, name, qname, attrs):
217          s = attrs.get((None, 'value'))          s = attrs.get((None, 'value'))
# Line 234  class SessionLoader(XMLReader): Line 236  class SessionLoader(XMLReader):
236                                    fill = fill, stroke = stroke,                                    fill = fill, stroke = stroke,
237                                    lineWidth = stroke_width)                                    lineWidth = stroke_width)
238    
239            self.__projReceiver = self.aLayer
240    
241      def end_layer(self, name, qname):      def end_layer(self, name, qname):
242          self.aMap.AddLayer(self.aLayer)          self.aMap.AddLayer(self.aLayer)
243            self.__projReceiver = None
244    
245      def start_classification(self, name, qname, attrs):      def start_classification(self, name, qname, attrs):
246          field = attrs.get((None, 'field'), None)          field = attrs.get((None, 'field'), None)

Legend:
Removed from v.723  
changed lines
  Added in v.763

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26