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

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

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

revision 440 by jonathan, Thu Feb 27 15:54:27 2003 UTC revision 605 by jonathan, Fri Apr 4 12:16:13 2003 UTC
# Line 1  Line 1 
1  # Copyright (c) 2001, 2002 by Intevation GmbH  # Copyright (c) 2001, 2002, 2003 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]>
# Line 57  class Saver: Line 57  class Saver:
57      """Class to serialize a session into an XML file.      """Class to serialize a session into an XML file.
58    
59      Applications built on top of Thuban may derive from this class and      Applications built on top of Thuban may derive from this class and
60      override or extend the methods to save additinal information. This      override or extend the methods to save additional information. This
61      additional information should take the form of additional attributes      additional information should take the form of additional attributes
62      or elements whose names are prefixed with a namespace. To define a      or elements whose names are prefixed with a namespace. To define a
63      namespace derived classes should extend the write_session method to      namespace derived classes should extend the write_session method to
# Line 99  class Saver: Line 99  class Saver:
99          self.write_header()          self.write_header()
100          self.write_session(self.session)          self.write_session(self.session)
101    
102          assert(self.indent_level == 0)          assert self.indent_level == 0
103    
104      def write_attribs(self, attrs):      def write_attribs(self, attrs):
105          for name, value in attrs.items():          for name, value in attrs.items():
# Line 127  class Saver: Line 127  class Saver:
127    
128      def close_element(self, element):      def close_element(self, element):
129          self.indent_level -= 1          self.indent_level -= 1
130          assert(self.indent_level >= 0)          assert self.indent_level >= 0
131    
132          # see open_element() for an explanation          # see open_element() for an explanation
133          if self.element_open == 1:          if self.element_open == 1:
# Line 180  class Saver: Line 180  class Saver:
180          element, call write_layer for each layer contained in the map          element, call write_layer for each layer contained in the map
181          and finally call write_label_layer to write the label layer.          and finally call write_label_layer to write the label layer.
182          """          """
183          write = self.file.write          #write = self.file.write
184          self.open_element('map title="%s"' % escape(map.title))          self.open_element('map title="%s"' % escape(map.title))
185          self.write_projection(map.projection)          self.write_projection(map.projection)
186          for layer in map.Layers():          for layer in map.Layers():
# Line 211  class Saver: Line 211  class Saver:
211    
212          attrs["title"]        = layer.title          attrs["title"]        = layer.title
213          attrs["filename"]     = relative_filename(self.dir, layer.filename)          attrs["filename"]     = relative_filename(self.dir, layer.filename)
214          attrs["stroke"]       = lc.GetDefaultStroke().hex()          attrs["stroke"]       = lc.GetDefaultLineColor().hex()
215          attrs["stroke_width"] = str(lc.GetDefaultStrokeWidth())          attrs["stroke_width"] = str(lc.GetDefaultLineWidth())
216          attrs["fill"]         = lc.GetDefaultFill().hex()          attrs["fill"]         = lc.GetDefaultFill().hex()
217    
218          self.open_element("layer", attrs)          self.open_element("layer", attrs)
# Line 234  class Saver: Line 234  class Saver:
234          if field is None: return          if field is None: return
235    
236          attrs["field"] = field          attrs["field"] = field
237            attrs["field_type"] = str(lc.GetFieldType())
238          self.open_element("classification", attrs)          self.open_element("classification", attrs)
239    
240    
# Line 259  class Saver: Line 260  class Saver:
260              elif isinstance(group, ClassGroupSingleton): type = 1              elif isinstance(group, ClassGroupSingleton): type = 1
261              elif isinstance(group, ClassGroupRange): type = 2              elif isinstance(group, ClassGroupRange): type = 2
262              elif isinstance(group, ClassGroupMap):   type = 3              elif isinstance(group, ClassGroupMap):   type = 3
263              assert(type >= 0)              assert type >= 0
264    
265              if type <= 2:              if type <= 2:
266                  data = group.GetProperties()                  data = group.GetProperties()
267                  dict = {'stroke'      : data.GetStroke().hex(),                  dict = {'stroke'      : data.GetLineColor().hex(),
268                          'stroke_width': str(data.GetStrokeWidth()),                          'stroke_width': str(data.GetLineWidth()),
269                          'fill'        : data.GetFill().hex()}                          'fill'        : data.GetFill().hex()}
270    
271                  self.open_element(types[type][0](group))                  self.open_element(types[type][0](group))

Legend:
Removed from v.440  
changed lines
  Added in v.605

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26