/[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 1149 by frank, Wed Jun 11 10:45:34 2003 UTC
# Line 6  Line 6 
6  # Read the file COPYING coming with Thuban for details.  # Read the file COPYING coming with Thuban for details.
7    
8  import os  import os
9    import os.path
10    
11  import Thuban  import Thuban
12    from Thuban import _
13    
14    from Thuban.Lib.fileutil import get_application_dir
15    
16  from Thuban.Model.load import XMLReader  from Thuban.Model.load import XMLReader
17  from Thuban.Model.save import XMLWriter  from Thuban.Model.save import XMLWriter
18  from Thuban.Model.proj import Projection, ProjFile  from Thuban.Model.proj import Projection, ProjFile
19    from xml.sax import SAXParseException
20    
21  projdir = \  projdir = \
22          os.path.join(Thuban.__path__[0], os.pardir, "Resources", "Projections")          os.path.join(Thuban.__path__[0], os.pardir, "Resources", "Projections")
23    
24  usrdir  = os.path.expanduser("~/.thuban")  usrdir  = get_application_dir()
25    
26  PROJ_EXT = ".proj"  PROJ_EXT = ".proj"
27    
# Line 31  def ReadProjFile(filename): Line 38  def ReadProjFile(filename):
38      return handler.GetProjFile()      return handler.GetProjFile()
39    
40  def WriteProjFile(pf):  def WriteProjFile(pf):
41        """Write a single .proj file
42    
43        Raises IOError if the file cannot be written.
44        """
45    
46      saver = ProjFileSaver(pf)      saver = ProjFileSaver(pf)
47      saver.write(pf.GetFileName())      saver.write(pf.GetFilename())
48    
49  def GetProjFiles(dir):  def GetProjFiles(dir):
50      """Read all .proj files in the given directory and      """Read all .proj files in the given directory and
# Line 57  def GetProjFiles(dir): Line 69  def GetProjFiles(dir):
69  def GetSystemProjFiles():  def GetSystemProjFiles():
70      """Return a list of ProjFile objects from files that are      """Return a list of ProjFile objects from files that are
71      supplied by Thuban.      supplied by Thuban.
72    
73        If no files could not be opened return a list with one
74        empty projection file set to store data in the default file.
75      """      """
76      return GetProjFiles(projdir)      filename = os.path.join(projdir, "defaults.proj")
77        try:
78            return [ReadProjFile(filename)]
79        except (OSError, IOError, SAXParseException):
80            return [ProjFile(filename)]
81    
82  def GetUserProjFiles():  def GetUserProjFiles():
83      """Return a list of ProjFile objects from files that are user-defined."""      """Return a list of ProjFile objects from files that are user-defined.
84      return GetProjFiles(usrdir)  
85        If no files could not be opened return a list with one
86        empty projection file set to store data in the default file.
87        """
88    
89        filename = os.path.join(usrdir, "user.proj")
90        try:
91            return [ReadProjFile(filename)]
92        except (OSError, IOError, SAXParseException):
93            return [ProjFile(filename)]
94    
95  class ProjFileReader(XMLReader):  class ProjFileReader(XMLReader):
96    
# Line 77  class ProjFileReader(XMLReader): Line 105  class ProjFileReader(XMLReader):
105      def read(self, file_or_filename):      def read(self, file_or_filename):
106          XMLReader.read(self, file_or_filename)          XMLReader.read(self, file_or_filename)
107    
108          self.__pf.SetFileName(XMLReader.GetFileName(self))          self.__pf.SetFilename(XMLReader.GetFilename(self))
109                    
110      def start_projection(self, name, qname, attrs):      def start_projection(self, name, qname, attrs):
111          self.params = []          self.params = []
112          self.name = attrs.get((None, 'name'), "Unknown")          self.name = self.encode(attrs.get((None, 'name'), _("Unknown")))
113    
114      def end_projection(self, name, qname):      def end_projection(self, name, qname):
115          self.__pf.Add(Projection(self.params, self.name))          self.__pf.Add(Projection(self.params, self.name))
# Line 104  class ProjFileSaver(XMLWriter): Line 132  class ProjFileSaver(XMLWriter):
132      def write(self, file_or_filename):      def write(self, file_or_filename):
133          XMLWriter.write(self, file_or_filename)          XMLWriter.write(self, file_or_filename)
134    
135          self.write_header("projfile", "thuban.dtd")          self.write_header("projfile", "projfile.dtd")
136          self.write_projfile(self.__pf)          self.write_projfile(self.__pf)
137          self.close()          self.close()
138    

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26