/[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 1354 by jonathan, Wed Jul 2 09:37:07 2003 UTC revision 1417 by bh, Tue Jul 15 08:43:53 2003 UTC
# Line 120  class SessionLoader(XMLReader): Line 120  class SessionLoader(XMLReader):
120              'labellayer'    : ("start_labellayer",     None),              'labellayer'    : ("start_labellayer",     None),
121              'label'         : ("start_label",          None)}              'label'         : ("start_label",          None)}
122    
123          # all dispatchers should be used for the 0.8 namespace          # all dispatchers should be used for the 0.8 and 0.9 namespaces too
124          xmlns = "http://thuban.intevation.org/dtds/thuban-0.8.dtd"          for xmlns in ("http://thuban.intevation.org/dtds/thuban-0.8.dtd",
125          for key, value in dispatchers.items():                        "http://thuban.intevation.org/dtds/thuban-0.9-dev.dtd"):
126              dispatchers[(xmlns, key)] = value              for key, value in dispatchers.items():
127                    dispatchers[(xmlns, key)] = value
128    
129          XMLReader.AddDispatchers(self, dispatchers)          XMLReader.AddDispatchers(self, dispatchers)
130    
# Line 249  class SessionLoader(XMLReader): Line 250  class SessionLoader(XMLReader):
250                                    AttrDesc("left", True, conversion="table"),                                    AttrDesc("left", True, conversion="table"),
251                                    AttrDesc("leftcolumn", True),                                    AttrDesc("leftcolumn", True),
252                                    AttrDesc("right", True, conversion="table"),                                    AttrDesc("right", True, conversion="table"),
253                                    AttrDesc("rightcolumn")])                                    AttrDesc("rightcolumn", True),
254    
255                                      # jointype is required for file
256                                      # version 0.9 but this attribute
257                                      # wasn't in the 0.8 version because of
258                                      # an oversight so we assume it's
259                                      # optional since we want to handle
260                                      # both file format versions here.
261                                      AttrDesc("jointype", False,
262                                               default="INNER")])
263    
264            jointype = attrs["jointype"]
265            if jointype == "LEFT OUTER":
266                outer_join = True
267            elif jointype == "INNER":
268                outer_join = False
269            else:
270                raise LoadError("jointype %r not supported" % jointype )
271          table = TransientJoinedTable(self.theSession.TransientDB(),          table = TransientJoinedTable(self.theSession.TransientDB(),
272                                       attrs["left"], attrs["leftcolumn"],                                       attrs["left"], attrs["leftcolumn"],
273                                       attrs["right"], attrs["rightcolumn"])                                       attrs["right"], attrs["rightcolumn"],
274                                         outer_join = outer_join)
275          table.SetTitle(attrs["title"])          table.SetTitle(attrs["title"])
276          self.idmap[attrs["id"]] = self.theSession.AddTable(table)          self.idmap[attrs["id"]] = self.theSession.AddTable(table)
277    
278      def start_map(self, name, qname, attrs):      def start_map(self, name, qname, attrs):
279          """Start a map."""          """Start a map."""
280          self.aMap = Map(attrs.get((None, 'title'), None))          self.aMap = Map(self.encode(attrs.get((None, 'title'), None)))
281    
282      def end_map(self, name, qname):      def end_map(self, name, qname):
283          self.theSession.AddMap(self.aMap)          self.theSession.AddMap(self.aMap)
# Line 362  class SessionLoader(XMLReader): Line 381  class SessionLoader(XMLReader):
381      def start_clpoint(self, name, qname, attrs):      def start_clpoint(self, name, qname, attrs):
382          attrib_value = attrs.get((None, 'value'), "0")          attrib_value = attrs.get((None, 'value'), "0")
383    
384          value = self.conv(attrib_value)          if self.aLayer.GetClassification().GetFieldType() == FIELDTYPE_STRING:
385                value = self.encode(attrib_value)
386            else:
387                value = self.conv(attrib_value)
388          self.cl_group = ClassGroupSingleton(value)          self.cl_group = ClassGroupSingleton(value)
389          self.cl_group.SetLabel(self.encode(attrs.get((None, 'label'), "")))          self.cl_group.SetLabel(self.encode(attrs.get((None, 'label'), "")))
390          self.cl_prop = ClassGroupProperties()          self.cl_prop = ClassGroupProperties()

Legend:
Removed from v.1354  
changed lines
  Added in v.1417

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26