/[thuban]/branches/WIP-pyshapelib-bramz/Thuban/UI/projdialog.py
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/Thuban/UI/projdialog.py

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

revision 1819 by bh, Mon Oct 13 15:55:43 2003 UTC revision 1833 by bh, Mon Oct 20 11:00:57 2003 UTC
# Line 24  from Thuban.Model.resource import get_us Line 24  from Thuban.Model.resource import get_us
24                                    read_proj_file, write_proj_file                                    read_proj_file, write_proj_file
25  from Thuban.UI.dialogs import NonModalNonParentDialog  from Thuban.UI.dialogs import NonModalNonParentDialog
26    
27    from common import ThubanBeginBusyCursor, ThubanEndBusyCursor
28  from sizers import NotebookLikeSizer  from sizers import NotebookLikeSizer
29    
30  ID_PROJ_ADVANCED  = 4001  ID_PROJ_ADVANCED  = 4001
# Line 246  class ProjFrame(NonModalNonParentDialog) Line 247  class ProjFrame(NonModalNonParentDialog)
247    
248          if newproj is not None:          if newproj is not None:
249              projfile.Replace(proj, newproj)              projfile.Replace(proj, newproj)
250              try:              self.write_proj_file(projfile)
                 write_proj_file(projfile)  
             except IOError, (errno, errstr):  
                 self.__ShowError(projfile.GetFilename(), errstr)  
251              self.availprojs.SetClientData(sel[0], [newproj, projfile])              self.availprojs.SetClientData(sel[0], [newproj, projfile])
252    
253              self.__FillAvailList( selectProj = newproj.Label())              self.__FillAvailList( selectProj = newproj.Label())
# Line 259  class ProjFrame(NonModalNonParentDialog) Line 257  class ProjFrame(NonModalNonParentDialog)
257          proj = self.__GetProjection()          proj = self.__GetProjection()
258          if proj is not None:          if proj is not None:
259              self.__usrProjFile.Add(proj)              self.__usrProjFile.Add(proj)
260              try:              self.write_proj_file(self.__usrProjFile)
                 write_proj_file(self.__usrProjFile)  
             except IOError, (errno, errstr):  
                 self.__ShowError(self.__userProjFile.GetFilename(), errstr)  
   
261              self.__FillAvailList( selectProj = proj.Label())              self.__FillAvailList( selectProj = proj.Label())
262    
263      def _OnProjAvail(self, event):      def _OnProjAvail(self, event):
# Line 286  class ProjFrame(NonModalNonParentDialog) Line 280  class ProjFrame(NonModalNonParentDialog)
280          if dlg.ShowModal() == wxID_OK:          if dlg.ShowModal() == wxID_OK:
281              path = dlg.GetPath()              path = dlg.GetPath()
282    
283                ThubanBeginBusyCursor()
284              try:              try:
285                  projFile, warnings = read_proj_file(path)                  try:
286                  self.show_warnings(_("Warnings"), path, warnings)                      projFile, warnings = read_proj_file(path)
287                  for proj in projFile.GetProjections():                  except IOError, (errno, errstr):
288                      self.__usrProjFile.Add(proj)                      self.__ShowError(dlg.GetPath(), errstr)
289                  write_proj_file(self.__usrProjFile)                  else:
290              except IOError, (errno, errstr):                      self.show_warnings(_("Warnings"), path, warnings)
291                  self.__ShowError(dlg.GetPath(), errstr)                      for proj in projFile.GetProjections():
292                            self.__usrProjFile.Add(proj)
293                        self.write_proj_file(self.__usrProjFile)
294                finally:
295                    ThubanEndBusyCursor()
296    
297              self.__FillAvailList()              self.__FillAvailList()
298    
# Line 317  class ProjFrame(NonModalNonParentDialog) Line 316  class ProjFrame(NonModalNonParentDialog)
316                  if proj is not None:                  if proj is not None:
317                      projFile.Add(proj)                      projFile.Add(proj)
318    
319              try:              self.write_proj_file(projFile)
                 write_proj_file(projFile)  
             except IOError, (errno, errstr):  
                 self.__ShowError(dlg.GetPath(), errstr)  
320    
321          dlg.Destroy()          dlg.Destroy()
322    
# Line 352  class ProjFrame(NonModalNonParentDialog) Line 348  class ProjFrame(NonModalNonParentDialog)
348              if proj is not None and projfile is not None:              if proj is not None and projfile is not None:
349                  projfile.Remove(proj)                  projfile.Remove(proj)
350    
351          try:          self.write_proj_file(projfile)
             write_proj_file(projfile)  
         except IOError, (errno, errstr):  
             self.__ShowError(projfile.GetFilename(), errstr)  
352    
353          self.__FillAvailList()          self.__FillAvailList()
354    
# Line 576  class ProjFrame(NonModalNonParentDialog) Line 569  class ProjFrame(NonModalNonParentDialog)
569          # the list can never be empty. there will always be          # the list can never be empty. there will always be
570          # at least this one item          # at least this one item
571          #          #
572          self.availprojs.Append("<None>", (None, None))          self.availprojs.Append(_("<None>"), (None, None))
573    
574          projfile, warnings = get_system_proj_file()          ThubanBeginBusyCursor()
575          self.show_warnings(_("Warnings"), projfile.GetFilename(), warnings)          try:
576          for proj in projfile.GetProjections():              projfile, warnings = get_system_proj_file()
577              self.availprojs.Append(proj.Label(), [proj, projfile])              self.show_warnings(_("Warnings"), projfile.GetFilename(), warnings)
578          self.__sysProjFile = projfile              for proj in projfile.GetProjections():
579                    self.availprojs.Append(proj.Label(), [proj, projfile])
580          projfile, warnings = get_user_proj_file()              self.__sysProjFile = projfile
581          self.show_warnings(_("Warnings"), projfile.GetFilename(), warnings)  
582          for proj in projfile.GetProjections():              projfile, warnings = get_user_proj_file()
583              self.availprojs.Append(proj.Label(), [proj, projfile])              self.show_warnings(_("Warnings"), projfile.GetFilename(), warnings)
584          self.__usrProjFile = projfile              for proj in projfile.GetProjections():
585                    self.availprojs.Append(proj.Label(), [proj, projfile])
586                self.__usrProjFile = projfile
587            finally:
588                ThubanEndBusyCursor()
589    
590          #          #
591          # We add the current projection to the list at last.          # We add the current projection to the list at last.
# Line 606  class ProjFrame(NonModalNonParentDialog) Line 603  class ProjFrame(NonModalNonParentDialog)
603          else:          else:
604              if selectCurrent:              if selectCurrent:
605                  self.availprojs.SetSelection(                  self.availprojs.SetSelection(
606                          self.availprojs.FindString("<None>")                          self.availprojs.FindString(_("<None>"))
607                      )                      )
608          if selectProj:          if selectProj:
609              self.availprojs.SetSelection(              self.availprojs.SetSelection(
610                          self.availprojs.FindString(selectProj)                          self.availprojs.FindString(selectProj)
611                      )                      )
612    
613        def write_proj_file(self, proj_file):
614            """Write the ProjFile object proj_file back to its file
615    
616            Show a busy cursor while writing and if an error occurs show a
617            dialog with the error message.
618            """
619            try:
620                ThubanBeginBusyCursor()
621                try:
622                    write_proj_file(proj_file)
623                finally:
624                    ThubanEndBusyCursor()
625            except IOError, (errno, errstr):
626                self.__ShowError(proj_file.GetFilename(), errstr)
627    
628    
629    
630  class ProjPanel(wxPanel):  class ProjPanel(wxPanel):
631      """Base class for all projection panels."""      """Base class for all projection panels."""

Legend:
Removed from v.1819  
changed lines
  Added in v.1833

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26