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

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

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

revision 718 by jonathan, Wed Apr 23 10:39:46 2003 UTC revision 875 by jonathan, Fri May 9 16:31:39 2003 UTC
# Line 7  Line 7 
7    
8  import os  import os
9  import Thuban  import Thuban
10    from Thuban import _
11    
12  from Thuban.Model.load import XMLReader  from Thuban.Model.load import XMLReader
13  from Thuban.Model.save import XMLWriter  from Thuban.Model.save import XMLWriter
14  from Thuban.Model.proj import Projection, ProjFile  from Thuban.Model.proj import Projection, ProjFile
15    from xml.sax import SAXParseException
16    
17  projdir = \  projdir = \
18          os.path.join(Thuban.__path__[0], os.pardir, "Resources", "Projections")          os.path.join(Thuban.__path__[0], os.pardir, "Resources", "Projections")
# Line 31  def ReadProjFile(filename): Line 34  def ReadProjFile(filename):
34      return handler.GetProjFile()      return handler.GetProjFile()
35    
36  def WriteProjFile(pf):  def WriteProjFile(pf):
37        """Write a single .proj file
38    
39        Raises IOError if the file cannot be written.
40        """
41    
42      saver = ProjFileSaver(pf)      saver = ProjFileSaver(pf)
43      saver.write(pf.GetFileName())      saver.write(pf.GetFilename())
44    
45  def GetProjFiles(dir):  def GetProjFiles(dir):
46      """Read all .proj files in the given directory and      """Read all .proj files in the given directory and
# Line 57  def GetProjFiles(dir): Line 65  def GetProjFiles(dir):
65  def GetSystemProjFiles():  def GetSystemProjFiles():
66      """Return a list of ProjFile objects from files that are      """Return a list of ProjFile objects from files that are
67      supplied by Thuban.      supplied by Thuban.
68    
69        If no files could not be opened return a list with one
70        empty projection file set to store data in the default file.
71      """      """
72      return GetProjFiles(projdir)      filename = os.path.join(projdir, "defaults.proj")
73        try:
74            return [ReadProjFile(filename)]
75        except (OSError, IOError, SAXParseException):
76            return [ProjFile(filename)]
77    
78  def GetUserProjFiles():  def GetUserProjFiles():
79      """Return a list of ProjFile objects from files that are user-defined."""      """Return a list of ProjFile objects from files that are user-defined.
80      return GetProjFiles(usrdir)  
81        If no files could not be opened return a list with one
82        empty projection file set to store data in the default file.
83        """
84    
85        filename = os.path.join(usrdir, "user.proj")
86        try:
87            return [ReadProjFile(filename)]
88        except (OSError, IOError, SAXParseException):
89            return [ProjFile(filename)]
90    
91  class ProjFileReader(XMLReader):  class ProjFileReader(XMLReader):
92    
# Line 77  class ProjFileReader(XMLReader): Line 101  class ProjFileReader(XMLReader):
101      def read(self, file_or_filename):      def read(self, file_or_filename):
102          XMLReader.read(self, file_or_filename)          XMLReader.read(self, file_or_filename)
103    
104          self.__pf.SetFileName(XMLReader.GetFileName(self))          self.__pf.SetFilename(XMLReader.GetFilename(self))
105                    
106      def start_projection(self, name, qname, attrs):      def start_projection(self, name, qname, attrs):
107          self.params = []          self.params = []
108          self.name = attrs.get((None, 'name'), "Unknown")          self.name = self.encode(attrs.get((None, 'name'), _("Unknown")))
109    
110      def end_projection(self, name, qname):      def end_projection(self, name, qname):
111          self.__pf.Add(Projection(self.params, self.name))          self.__pf.Add(Projection(self.params, self.name))
# Line 104  class ProjFileSaver(XMLWriter): Line 128  class ProjFileSaver(XMLWriter):
128      def write(self, file_or_filename):      def write(self, file_or_filename):
129          XMLWriter.write(self, file_or_filename)          XMLWriter.write(self, file_or_filename)
130    
131          self.write_header("projfile", "thuban.dtd")          self.write_header("projfile", "projfile.dtd")
132          self.write_projfile(self.__pf)          self.write_projfile(self.__pf)
133          self.close()          self.close()
134    

Legend:
Removed from v.718  
changed lines
  Added in v.875

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26