/[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 1933 by bh, Tue Nov 11 16:37:53 2003 UTC revision 2505 by jan, Thu Dec 23 15:10:41 2004 UTC
# Line 1  Line 1 
1  # Copyright (c) 2003 by Intevation GmbH  # Copyright (c) 2003, 2004 by Intevation GmbH
2  # Authors:  # Authors:
3  # Jonathan Coles <[email protected]>  # Jonathan Coles <[email protected]>
4  # Frank Koormann <[email protected]>  # Frank Koormann <[email protected]>
# Line 22  from Thuban.Model.proj import Projection Line 22  from Thuban.Model.proj import Projection
22    
23  from Thuban.Model.resource import get_user_proj_file, get_system_proj_file, \  from Thuban.Model.resource import get_user_proj_file, get_system_proj_file, \
24                                    read_proj_file, write_proj_file, \                                    read_proj_file, write_proj_file, \
25                                    DEFAULT_PROJ_FILE, EPSG_PROJ_FILE                                    DEFAULT_PROJ_FILE, EPSG_PROJ_FILE, \
26                                      EPSG_DEPRECATED_PROJ_FILE
27  from Thuban.UI.dialogs import NonModalNonParentDialog  from Thuban.UI.dialogs import NonModalNonParentDialog
28    
29  from common import ThubanBeginBusyCursor, ThubanEndBusyCursor  from common import ThubanBeginBusyCursor, ThubanEndBusyCursor
# Line 117  class ProjFrame(NonModalNonParentDialog) Line 118  class ProjFrame(NonModalNonParentDialog)
118          EVT_BUTTON(self, ID_PROJ_REMOVE, self._OnRemove)          EVT_BUTTON(self, ID_PROJ_REMOVE, self._OnRemove)
119          buttons.Add(self.button_remove, 1, wxALL|wxEXPAND, 4)          buttons.Add(self.button_remove, 1, wxALL|wxEXPAND, 4)
120    
121          self.check_epsg = wxCheckBox(self, -1, _("Show EPSG"))          buttons.Add(20, 20, 0, wxEXPAND, 0)
122            label = wxStaticText(self, -1, _("Show EPSG:"))
123            buttons.Add(label, 0, wxLEFT|wxRIGHT|wxTOP, 4)
124            self.check_epsg = wxCheckBox(self, -1, _("Normal"))
125          EVT_CHECKBOX(self, self.check_epsg.GetId(), self._OnShowEPSG)          EVT_CHECKBOX(self, self.check_epsg.GetId(), self._OnShowEPSG)
126          buttons.Add(self.check_epsg, 1, wxALL|wxEXPAND, 4)          buttons.Add(self.check_epsg, 1, wxALL|wxEXPAND, 4)
127            self.check_epsg_depr = wxCheckBox(self, -1, _("Deprecated"))
128            EVT_CHECKBOX(self, self.check_epsg_depr.GetId(), self._OnShowEPSG)
129            buttons.Add(self.check_epsg_depr, 1, wxALL|wxEXPAND, 4)
130    
131          # The file path          # The file path
132          self.projfilepath = wxStaticText(self, -1, "")          self.projfilepath = wxStaticText(self, -1, "")
# Line 296  class ProjFrame(NonModalNonParentDialog) Line 303  class ProjFrame(NonModalNonParentDialog)
303          add them to the user ProjFile object and write the user file          add them to the user ProjFile object and write the user file
304          back to disk.          back to disk.
305          """          """
306          dlg = wxFileDialog(self, _("Import"), style = wxOPEN)          dlg = wxFileDialog(self, _("Import"),
307                    self.parent.application.Path("projection"), style = wxOPEN)
308    
309          if dlg.ShowModal() == wxID_OK:          if dlg.ShowModal() == wxID_OK:
310              path = dlg.GetPath()              path = dlg.GetPath()
# Line 312  class ProjFrame(NonModalNonParentDialog) Line 320  class ProjFrame(NonModalNonParentDialog)
320                      for proj in projFile.GetProjections():                      for proj in projFile.GetProjections():
321                          self.__usrProjFile.Add(proj)                          self.__usrProjFile.Add(proj)
322                      self.write_proj_file(self.__usrProjFile)                      self.write_proj_file(self.__usrProjFile)
323                        self.parent.application.SetPath("projection", path)
324              finally:              finally:
325                  ThubanEndBusyCursor()                  ThubanEndBusyCursor()
326          dlg.Destroy()          dlg.Destroy()
# Line 325  class ProjFrame(NonModalNonParentDialog) Line 334  class ProjFrame(NonModalNonParentDialog)
334          sel = self.projection_list.selected_projections()          sel = self.projection_list.selected_projections()
335          assert len(sel) != 0, "button should be disabled"          assert len(sel) != 0, "button should be disabled"
336    
337          dlg = wxFileDialog(self, _("Export"), style=wxSAVE|wxOVERWRITE_PROMPT)          dlg = wxFileDialog(self, _("Export"),
338                    self.parent.application.Path("projection"),
339                    style=wxSAVE|wxOVERWRITE_PROMPT)
340    
341          if dlg.ShowModal() == wxID_OK:          if dlg.ShowModal() == wxID_OK:
342              proj_file = ProjFile(dlg.GetPath())              proj_file = ProjFile(dlg.GetPath())
# Line 333  class ProjFrame(NonModalNonParentDialog) Line 344  class ProjFrame(NonModalNonParentDialog)
344                  if proj is not None:                  if proj is not None:
345                      proj_file.Add(proj)                      proj_file.Add(proj)
346              self.write_proj_file(proj_file)              self.write_proj_file(proj_file)
347                self.parent.application.SetPath("projection", dlg.GetPath())
348    
349          dlg.Destroy()          dlg.Destroy()
350    
# Line 361  class ProjFrame(NonModalNonParentDialog) Line 373  class ProjFrame(NonModalNonParentDialog)
373          If the button is checked add the EPSG_PROJ_FILE to the list of          If the button is checked add the EPSG_PROJ_FILE to the list of
374          projfiles shown by the projection list. Otherwise remove it          projfiles shown by the projection list. Otherwise remove it
375          """          """
376            proj_files = [self.load_user_proj(),
377                          self.load_system_proj(DEFAULT_PROJ_FILE)]
378          if self.check_epsg.IsChecked():          if self.check_epsg.IsChecked():
379              proj_files = [self.load_user_proj(),              proj_files.append(self.load_system_proj(EPSG_PROJ_FILE))
380                            self.load_system_proj(DEFAULT_PROJ_FILE),          if self.check_epsg_depr.IsChecked():
381                            self.load_system_proj(EPSG_PROJ_FILE)]              proj_files.append(self.load_system_proj(EPSG_DEPRECATED_PROJ_FILE))
         else:  
             proj_files = [self.load_user_proj(),  
                           self.load_system_proj(DEFAULT_PROJ_FILE)]  
382          self.projection_list.SetProjFiles(proj_files)          self.projection_list.SetProjFiles(proj_files)
383    
384      def _OnProjName(self, event):      def _OnProjName(self, event):
# Line 519  class ProjFrame(NonModalNonParentDialog) Line 530  class ProjFrame(NonModalNonParentDialog)
530      def _show_proj_panel(self, panel_class):      def _show_proj_panel(self, panel_class):
531          """Show the panel as the projection panel"""          """Show the panel as the projection panel"""
532          if panel_class is UnknownProjPanel:          if panel_class is UnknownProjPanel:
533                self.button_ok.Disable()
534                self.button_try.Disable()
535              self.edit_box.Disable()              self.edit_box.Disable()
536              self.nbsizer.Activate(self.unknown_projection_panel)              self.nbsizer.Activate(self.unknown_projection_panel)
537              self.curProjPanel = self.unknown_projection_panel              self.curProjPanel = self.unknown_projection_panel
538          else:          else:
539                self.button_ok.Enable(True)
540                self.button_try.Enable(True)
541              self.edit_box.Enable(True)              self.edit_box.Enable(True)
542              self.unknown_projection_panel.Hide()              self.unknown_projection_panel.Hide()
543              for panel in self.projection_panels:              for panel in self.projection_panels:
# Line 558  class ProjFrame(NonModalNonParentDialog) Line 573  class ProjFrame(NonModalNonParentDialog)
573          # self.curProjPanel should always contain the most relevant data          # self.curProjPanel should always contain the most relevant data
574          # for a projection          # for a projection
575          if self.curProjPanel is not None:          if self.curProjPanel is not None:
576              return Projection(self.curProjPanel.GetParameters(),              parameters = self.curProjPanel.GetParameters()
577                                self.projname.GetValue())              if parameters is not None:
578                    return Projection(parameters, self.projname.GetValue())
579    
580          return None          return None
581    
# Line 570  class ProjFrame(NonModalNonParentDialog) Line 586  class ProjFrame(NonModalNonParentDialog)
586          with get_user_proj_file and cache it in self.__usrProjFile.          with get_user_proj_file and cache it in self.__usrProjFile.
587    
588          Show a busy cursor while loading the file.          Show a busy cursor while loading the file.
589    
590            If the file is not available, leave a note to the console.
591          """          """
592          if self.__usrProjFile is None:          if self.__usrProjFile is None:
593              ThubanBeginBusyCursor()              ThubanBeginBusyCursor()
594              try:              try:
595                  projfile, warnings = get_user_proj_file()                  projfile, warnings = get_user_proj_file()
596                  self.show_warnings(_("Warnings"), projfile.GetFilename(),                  if warnings:
597                                     warnings)                      sys.stderr.write("".join(warnings))
598                        sys.stderr.write("\n")
599                  self.__usrProjFile = projfile                  self.__usrProjFile = projfile
600              finally:              finally:
601                  ThubanEndBusyCursor()                  ThubanEndBusyCursor()

Legend:
Removed from v.1933  
changed lines
  Added in v.2505

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26