/[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 2561 by bh, Tue Feb 8 20:34:29 2005 UTC revision 2700 by dpinte, Mon Sep 18 14:27:02 2006 UTC
# Line 13  __version__ = "$Revision$" Line 13  __version__ = "$Revision$"
13  # $Source$  # $Source$
14  # $Id$  # $Id$
15    
16  import os  import sys, os
17  from wxPython.wx import *  import wx
18    
19  from Thuban import _  from Thuban import _
20    
# Line 80  class ProjFrame(NonModalNonParentDialog) Line 80  class ProjFrame(NonModalNonParentDialog)
80    
81      def build_dialog(self):      def build_dialog(self):
82          """Build the dialog's widgets and set the event handlers"""          """Build the dialog's widgets and set the event handlers"""
83          self.topBox = top_box = wxBoxSizer(wxVERTICAL)          self.topBox = top_box = wx.BoxSizer(wx.VERTICAL)
84    
85          main_box = wxBoxSizer(wxHORIZONTAL)          main_box = wx.BoxSizer(wx.HORIZONTAL)
86          top_box.Add(main_box, 1, wxALL|wxEXPAND)          top_box.Add(main_box, 1, wx.ALL|wx.EXPAND)
87    
88          #          #
89          #    The projection list and associated controls          #    The projection list and associated controls
90          #          #
91          vbox = wxBoxSizer(wxVERTICAL)          vbox = wx.BoxSizer(wx.VERTICAL)
92          main_box.Add(vbox, 4, wxALL|wxEXPAND)          main_box.Add(vbox, 4, wx.ALL|wx.EXPAND)
93    
94          #label = wxStaticText(self, -1, _("Available Projections:"))          #label = wxStaticText(self, -1, _("Available Projections:"))
95          #vbox.Add(label, 0, wxLEFT|wxRIGHT|wxTOP, 4)          #vbox.Add(label, 0, wxLEFT|wxRIGHT|wxTOP, 4)
96    
97          hbox = wxBoxSizer(wxHORIZONTAL)          hbox = wx.BoxSizer(wx.HORIZONTAL)
98          vbox.Add(hbox, 1, wxALL|wxEXPAND)          vbox.Add(hbox, 1, wx.ALL|wx.EXPAND)
99          proj_files = [self.load_user_proj(),          proj_files = [self.load_user_proj(),
100                        self.load_system_proj(DEFAULT_PROJ_FILE)]                        self.load_system_proj(DEFAULT_PROJ_FILE)]
101          self.projection_list = ProjectionList(self, proj_files,          self.projection_list = ProjectionList(self, proj_files,
102                                                self.receiver.GetProjection())                                                self.receiver.GetProjection())
103          hbox.Add(self.projection_list, 1, wxALL|wxEXPAND|wxADJUST_MINSIZE, 4)          hbox.Add(self.projection_list, 1, wx.ALL|wx.EXPAND|wx.ADJUST_MINSIZE, 4)
104          self.projection_list.Subscribe(PROJ_SELECTION_CHANGED,          self.projection_list.Subscribe(PROJ_SELECTION_CHANGED,
105                                         self.proj_selection_changed)                                         self.proj_selection_changed)
106    
107          # Projection List specific actions (Import/Export/Remove)          # Projection List specific actions (Import/Export/Remove)
108          buttons = wxBoxSizer(wxVERTICAL)          buttons = wx.BoxSizer(wx.VERTICAL)
109          hbox.Add(buttons, 0, wxALL)          hbox.Add(buttons, 0, wx.ALL)
110          self.button_import = wxButton(self, ID_PROJ_IMPORT, _("Import..."))          self.button_import = wx.Button(self, ID_PROJ_IMPORT, _("Import..."))
111          EVT_BUTTON(self, ID_PROJ_IMPORT, self._OnImport)          self.Bind(wx.EVT_BUTTON, self._OnImport, id=ID_PROJ_IMPORT)
112          buttons.Add(self.button_import, 1, wxALL|wxEXPAND, 4)          buttons.Add(self.button_import, 1, wx.ALL|wx.EXPAND, 4)
113          self.button_export = wxButton(self, ID_PROJ_EXPORT, _("Export..."))          self.button_export = wx.Button(self, ID_PROJ_EXPORT, _("Export..."))
114          EVT_BUTTON(self, ID_PROJ_EXPORT, self._OnExport)          self.Bind(wx.EVT_BUTTON, self._OnExport, id=ID_PROJ_EXPORT)
115          buttons.Add(self.button_export, 1, wxALL|wxEXPAND, 4)          buttons.Add(self.button_export, 1, wx.ALL|wx.EXPAND, 4)
116          buttons.Add( (20, 20), 0, wxEXPAND, 0)          buttons.Add( (20, 20), 0, wx.EXPAND, 0)
117          self.button_remove = wxButton(self, ID_PROJ_REMOVE, _("Remove"))          self.button_remove = wx.Button(self, ID_PROJ_REMOVE, _("Remove"))
118          EVT_BUTTON(self, ID_PROJ_REMOVE, self._OnRemove)          self.Bind(wx.EVT_BUTTON, self._OnRemove, id=ID_PROJ_REMOVE)
119          buttons.Add(self.button_remove, 1, wxALL|wxEXPAND, 4)          buttons.Add(self.button_remove, 1, wx.ALL|wx.EXPAND, 4)
120    
121          buttons.Add( (20, 20), 0, wxEXPAND, 0)          buttons.Add( (20, 20), 0, wx.EXPAND, 0)
122          label = wxStaticText(self, -1, _("Show EPSG:"))          label = wx.StaticText(self, -1, _("Show EPSG:"))
123          buttons.Add(label, 0, wxLEFT|wxRIGHT|wxTOP, 4)          buttons.Add(label, 0, wx.LEFT|wx.RIGHT|wx.TOP, 4)
124          self.check_epsg = wxCheckBox(self, -1, _("Normal"))          self.check_epsg = wx.CheckBox(self, -1, _("Normal"))
125          EVT_CHECKBOX(self, self.check_epsg.GetId(), self._OnShowEPSG)          self.Bind(wx.EVT_CHECKBOX, self._OnShowEPSG, id=self.check_epsg.GetId())
126          buttons.Add(self.check_epsg, 1, wxALL|wxEXPAND, 4)          buttons.Add(self.check_epsg, 1, wx.ALL|wx.EXPAND, 4)
127          self.check_epsg_depr = wxCheckBox(self, -1, _("Deprecated"))          self.check_epsg_depr = wx.CheckBox(self, -1, _("Deprecated"))
128          EVT_CHECKBOX(self, self.check_epsg_depr.GetId(), self._OnShowEPSG)          self.Bind(wx.EVT_CHECKBOX, self._OnShowEPSG, id=self.check_epsg_depr.GetId())
129          buttons.Add(self.check_epsg_depr, 1, wxALL|wxEXPAND, 4)          buttons.Add(self.check_epsg_depr, 1, wx.ALL|wx.EXPAND, 4)
130    
131          # The file path          # The file path
132          self.projfilepath = wxStaticText(self, -1, "")          self.projfilepath = wx.StaticText(self, -1, "")
133          vbox.Add(self.projfilepath, 0, wxALL|wxEXPAND)          vbox.Add(self.projfilepath, 0, wx.ALL|wx.EXPAND)
134    
135          #          #
136          #   The projection editor part          #   The projection editor part
137          #          #
138          self.edit_box = wxStaticBox(self, -1, _("Edit"))          self.edit_box = wx.StaticBox(self, -1, _("Edit"))
139          sizer_edit = wxStaticBoxSizer(self.edit_box, wxHORIZONTAL)          sizer_edit = wx.StaticBoxSizer(self.edit_box, wx.HORIZONTAL)
140          main_box.Add(sizer_edit, 5, wxALL|wxEXPAND)          main_box.Add(sizer_edit, 5, wx.ALL|wx.EXPAND)
141    
142          # Projection Specific Entries (Name/Projection)          # Projection Specific Entries (Name/Projection)
143          self.sizer_projctrls = wxBoxSizer(wxVERTICAL)          self.sizer_projctrls = wx.BoxSizer(wx.VERTICAL)
144          sizer_edit.Add(self.sizer_projctrls, 1, wxALL|wxEXPAND)          sizer_edit.Add(self.sizer_projctrls, 1, wx.ALL|wx.EXPAND)
145    
146          hbox = wxBoxSizer(wxHORIZONTAL)          hbox = wx.BoxSizer(wx.HORIZONTAL)
147          self.sizer_projctrls.Add(hbox, 0, wxALL|wxEXPAND)          self.sizer_projctrls.Add(hbox, 0, wx.ALL|wx.EXPAND)
148          label = wxStaticText(self, -1, _("Name:"))          label = wx.StaticText(self, -1, _("Name:"))
149          hbox.Add(label, 0, wxALL|wxALIGN_CENTER_VERTICAL, 4)          hbox.Add(label, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 4)
150          self.projname = wxTextCtrl(self, ID_PROJ_PROJNAME, "")          self.projname = wx.TextCtrl(self, ID_PROJ_PROJNAME, "")
151          EVT_TEXT(self, ID_PROJ_PROJNAME, self._OnProjName)          self.Bind(wx.EVT_TEXT, self._OnProjName, id=ID_PROJ_PROJNAME)
152          hbox.Add(self.projname, 1, wxALL|wxEXPAND, 4)          hbox.Add(self.projname, 1, wx.ALL|wx.EXPAND, 4)
153    
154          hbox = wxBoxSizer(wxHORIZONTAL)          hbox = wx.BoxSizer(wx.HORIZONTAL)
155          self.sizer_projctrls.Add(hbox, 0, wxALL|wxEXPAND)          self.sizer_projctrls.Add(hbox, 0, wx.ALL|wx.EXPAND)
156          label = wxStaticText(self, -1, _("Projection:"))          label = wx.StaticText(self, -1, _("Projection:"))
157          hbox.Add(label, 0, wxALL|wxALIGN_CENTER_VERTICAL, 4)          hbox.Add(label, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 4)
158          self.projchoice = wxChoice(self, ID_PROJ_PROJCHOICE)          self.projchoice = wx.Choice(self, ID_PROJ_PROJCHOICE)
159          self.projchoice.SetSelection(0)          self.projchoice.SetSelection(0)
160          EVT_CHOICE(self, ID_PROJ_PROJCHOICE, self._OnProjChoice)          self.Bind(wx.EVT_CHOICE, self._OnProjChoice, id=ID_PROJ_PROJCHOICE)
161          hbox.Add(self.projchoice, 1, wxALL|wxEXPAND, 4)          hbox.Add(self.projchoice, 1, wx.ALL|wx.EXPAND, 4)
162          # Fill the projection choice list.          # Fill the projection choice list.
163          self.nbsizer = NotebookLikeSizer()          self.nbsizer = NotebookLikeSizer()
164          self.sizer_projctrls.Add(self.nbsizer, 1,          self.sizer_projctrls.Add(self.nbsizer, 1,
165                                   wxALL|wxEXPAND|wxADJUST_MINSIZE, 3)                                   wx.ALL|wx.EXPAND|wx.ADJUST_MINSIZE, 3)
166          self.projection_panels = []          self.projection_panels = []
167          self.projchoice.Append(_("<Unknown>"), "")          self.projchoice.Append(_("<Unknown>"), "")
168          for proj_type, name, cls in self.projection_panel_defs:          for proj_type, name, cls in self.projection_panel_defs:
# Line 178  class ProjFrame(NonModalNonParentDialog) Line 178  class ProjFrame(NonModalNonParentDialog)
178          self.nbsizer.Add(self.unknown_projection_panel)          self.nbsizer.Add(self.unknown_projection_panel)
179    
180          # Projection Specific actions (New/Save/Add)          # Projection Specific actions (New/Save/Add)
181          buttons = wxBoxSizer(wxVERTICAL)          buttons = wx.BoxSizer(wx.VERTICAL)
182          sizer_edit.Add(buttons, 0, wxALL)          sizer_edit.Add(buttons, 0, wx.ALL)
183          self.button_new = wxButton(self, ID_PROJ_NEW, _("New"))          self.button_new = wx.Button(self, ID_PROJ_NEW, _("New"))
184          EVT_BUTTON(self, ID_PROJ_NEW, self._OnNew)          self.Bind(wx.EVT_BUTTON, self._OnNew, id=ID_PROJ_NEW)
185          buttons.Add(self.button_new, 0, wxEXPAND|wxALL, 4)          buttons.Add(self.button_new, 0, wx.EXPAND|wx.ALL, 4)
186          self.button_add = wxButton(self, ID_PROJ_ADDTOLIST, _("Add to List"))          self.button_add = wx.Button(self, ID_PROJ_ADDTOLIST, _("Add to List"))
187          EVT_BUTTON(self, ID_PROJ_ADDTOLIST, self._OnAddToList)          self.Bind(wx.EVT_BUTTON, self._OnAddToList, id=ID_PROJ_ADDTOLIST)
188          buttons.Add(self.button_add, 0, wxEXPAND|wxALL, 4)          buttons.Add(self.button_add, 0, wx.EXPAND|wx.ALL, 4)
189          buttons.Add( (20, 20), 0, wxEXPAND, 0)          buttons.Add( (20, 20), 0, wx.EXPAND, 0)
190          self.button_save = wxButton(self, ID_PROJ_SAVE,_("Update"))          self.button_save = wx.Button(self, ID_PROJ_SAVE,_("Update"))
191          EVT_BUTTON(self, ID_PROJ_SAVE, self._OnSave)          self.Bind(wx.EVT_BUTTON, self._OnSave, id=ID_PROJ_SAVE)
192          buttons.Add(self.button_save, 0, wxEXPAND|wxALL|wxALIGN_BOTTOM, 4)          buttons.Add(self.button_save, 0, wx.EXPAND|wx.ALL|wx.ALIGN_BOTTOM, 4)
193    
194          #          #
195          # Main Action buttons (Try/Revert/OK/Close)          # Main Action buttons (Try/Revert/OK/Close)
196          #          #
197          buttons = wxBoxSizer(wxHORIZONTAL)          buttons = wx.BoxSizer(wx.HORIZONTAL)
198          top_box.Add(buttons, 0, wxALL|wxALIGN_RIGHT, 10)          top_box.Add(buttons, 0, wx.ALL|wx.ALIGN_RIGHT, 10)
199          self.button_try = wxButton(self, wxID_APPLY, _("Try"))          self.button_try = wx.Button(self, wx.ID_APPLY, _("Try"))
200          EVT_BUTTON(self, wxID_APPLY, self.OnApply)          self.Bind(wx.EVT_BUTTON, self.OnApply, id=wx.ID_APPLY)
201          buttons.Add(self.button_try, 0, wxRIGHT, 10)          buttons.Add(self.button_try, 0, wx.RIGHT, 10)
202          self.button_revert = wxButton(self, ID_PROJ_REVERT, _("Revert"))          self.button_revert = wx.Button(self, ID_PROJ_REVERT, _("Revert"))
203          EVT_BUTTON(self, ID_PROJ_REVERT, self._OnRevert)          self.Bind(wx.EVT_BUTTON, self._OnRevert, id=ID_PROJ_REVERT)
204          buttons.Add(self.button_revert, 0, wxRIGHT, 10)          buttons.Add(self.button_revert, 0, wx.RIGHT, 10)
205          self.button_ok = wxButton(self, wxID_OK, _("OK"))          self.button_ok = wx.Button(self, wx.ID_OK, _("OK"))
206          EVT_BUTTON(self, wxID_OK, self.OnOK)          self.Bind(wx.EVT_BUTTON, self.OnOK, id=wx.ID_OK)
207          self.button_ok.SetDefault()          self.button_ok.SetDefault()
208          buttons.Add(self.button_ok, 0, wxRIGHT, 10)          buttons.Add(self.button_ok, 0, wx.RIGHT, 10)
209          self.button_close = wxButton(self, wxID_CANCEL, _("Close"))          self.button_close = wx.Button(self, wx.ID_CANCEL, _("Close"))
210          EVT_BUTTON(self, wxID_CANCEL, self.OnCancel)          self.Bind(wx.EVT_BUTTON, self.OnCancel, id=wx.ID_CANCEL)
211          buttons.Add(self.button_close, 0, wxRIGHT, 10)          buttons.Add(self.button_close, 0, wx.RIGHT, 10)
212    
213    
214          #          #
# Line 303  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"),          dlg = wx.FileDialog(self, _("Import"),
307                  self.parent.application.Path("projection"), style = wxOPEN)                  self.parent.application.Path("projection"), style = wx.OPEN)
308    
309          if dlg.ShowModal() == wxID_OK:          if dlg.ShowModal() == wx.ID_OK:
310              path = dlg.GetPath()              path = dlg.GetPath()
311    
312              ThubanBeginBusyCursor()              ThubanBeginBusyCursor()
# Line 334  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"),          dlg = wx.FileDialog(self, _("Export"),
338                  self.parent.application.Path("projection"),                  self.parent.application.Path("projection"),
339                  style=wxSAVE|wxOVERWRITE_PROMPT)                  style=wx.SAVE|wx.OVERWRITE_PROMPT)
340    
341          if dlg.ShowModal() == wxID_OK:          if dlg.ShowModal() == wx.ID_OK:
342              proj_file = ProjFile(dlg.GetPath())              proj_file = ProjFile(dlg.GetPath())
343              for proj, pf in sel:              for proj, pf in sel:
344                  if proj is not None:                  if proj is not None:
# Line 385  class ProjFrame(NonModalNonParentDialog) Line 385  class ProjFrame(NonModalNonParentDialog)
385          self.__VerifyButtons()          self.__VerifyButtons()
386    
387      def __ShowError(self, filename, errstr):      def __ShowError(self, filename, errstr):
388          wxMessageDialog(self,          wx.MessageDialog(self,
389              _("The following error occured:\n") +              _("The following error occured:\n") +
390              filename + "\n" + errstr,              filename + "\n" + errstr,
391              _("Error"), wxOK | wxICON_ERROR).ShowModal()              _("Error"), wx.OK | wx.ICON_ERROR).ShowModal()
392    
393      def __VerifyButtons(self):      def __VerifyButtons(self):
394          """Update button sensitivity"""          """Update button sensitivity"""
# Line 638  class ProjFrame(NonModalNonParentDialog) Line 638  class ProjFrame(NonModalNonParentDialog)
638    
639    
640    
641  class ProjPanel(wxPanel):  class ProjPanel(wx.Panel):
642      """Base class for all projection panels."""      """Base class for all projection panels."""
643    
644      def __init__(self, parent):      def __init__(self, parent):
645          wxPanel.__init__(self, parent, -1)          wx.Panel.__init__(self, parent, -1)
646    
647          self.__ellps = wxChoice(self, -1)          self.__ellps = wx.Choice(self, -1)
648          self.ellpsData = [("", _("<Unknown>")),          self.ellpsData = [("", _("<Unknown>")),
649                            ("airy"  , _("Airy")),                            ("airy"  , _("Airy")),
650                            ("bessel", _("Bessel 1841")),                            ("bessel", _("Bessel 1841")),
# Line 658  class ProjPanel(wxPanel): Line 658  class ProjPanel(wxPanel):
658              self.__ellps.Append(name, tag)              self.__ellps.Append(name, tag)
659    
660          self.__ellps.SetSelection(0)          self.__ellps.SetSelection(0)
661            
662      def _DoLayout(self, childPanel = None):      def _DoLayout(self, childPanel = None):
663    
664          panelSizer = wxBoxSizer(wxVERTICAL)          panelSizer = wx.BoxSizer(wx.VERTICAL)
665    
666          sizer = wxBoxSizer(wxHORIZONTAL)          sizer = wx.BoxSizer(wx.HORIZONTAL)
667          sizer.Add(wxStaticText(self, -1, _("Ellipsoid:")), 0,          sizer.Add(wx.StaticText(self, -1, _("Ellipsoid:")), 0,
668                                      wxALL|wxALIGN_CENTER_VERTICAL, 4)                                      wx.ALL|wx.ALIGN_CENTER_VERTICAL, 4)
669          sizer.Add(self.__ellps, 1, wxALL|wxALIGN_CENTER_VERTICAL, 4)          sizer.Add(self.__ellps, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 4)
670          panelSizer.Add(sizer, 0, wxALL|wxEXPAND, 4)          panelSizer.Add(sizer, 0, wx.ALL|wx.EXPAND, 4)
671    
672          if childPanel is not None:          if childPanel is not None:
673              panelSizer.Add(childPanel, 0, wxEXPAND, 0)              panelSizer.Add(childPanel, 0, wx.EXPAND, 0)
674                
675          self.SetAutoLayout(1)          self.SetAutoLayout(1)
676          self.SetSizer(panelSizer)          self.SetSizer(panelSizer)
677          panelSizer.Fit(self)          panelSizer.Fit(self)
# Line 718  class UnknownProjPanel(ProjPanel): Line 718  class UnknownProjPanel(ProjPanel):
718                          "display a configuration panel.\n\n"                          "display a configuration panel.\n\n"
719                          "The unidentified set of parameters is:\n\n")                          "The unidentified set of parameters is:\n\n")
720    
721          self.__textbox = wxTextCtrl(self, -1, self.__text, size=(100,200),          self.__textbox = wx.TextCtrl(self, -1, self.__text, size=(100,200),
722                              style=wxTE_READONLY|wxTE_MULTILINE|wxTE_LINEWRAP)                              style=wx.TE_READONLY|wx.TE_MULTILINE|wx.TE_LINEWRAP)
723          self._DoLayout()          self._DoLayout()
724    
725      def _DoLayout(self):      def _DoLayout(self):
726          sizer = wxBoxSizer(wxVERTICAL)          sizer = wx.BoxSizer(wx.VERTICAL)
727    
728          sizer.Add(self.__textbox, 0, wxALL|wxEXPAND, 4)          sizer.Add(self.__textbox, 0, wx.ALL|wx.EXPAND, 4)
729    
730          ProjPanel._DoLayout(self, sizer)          ProjPanel._DoLayout(self, sizer)
731    
# Line 748  class TMPanel(ProjPanel): Line 748  class TMPanel(ProjPanel):
748      def __init__(self, parent, receiver):      def __init__(self, parent, receiver):
749          ProjPanel.__init__(self, parent)          ProjPanel.__init__(self, parent)
750    
751          self.__latitude = wxTextCtrl(self, ID_TMPANEL_LAT)          self.__latitude = wx.TextCtrl(self, ID_TMPANEL_LAT)
752          self.__longitude = wxTextCtrl(self, ID_TMPANEL_LONG)          self.__longitude = wx.TextCtrl(self, ID_TMPANEL_LONG)
753          self.__falseEast = wxTextCtrl(self, ID_TMPANEL_FASLE_EAST)          self.__falseEast = wx.TextCtrl(self, ID_TMPANEL_FASLE_EAST)
754          self.__falseNorth = wxTextCtrl(self, ID_TMPANEL_FALSE_NORTH)          self.__falseNorth = wx.TextCtrl(self, ID_TMPANEL_FALSE_NORTH)
755          self.__scale = wxTextCtrl(self, ID_TMPANEL_SCALE)          self.__scale = wx.TextCtrl(self, ID_TMPANEL_SCALE)
756    
757          self._DoLayout()          self._DoLayout()
758    
759      def _DoLayout(self):      def _DoLayout(self):
760    
761          sizer = wxFlexGridSizer(4, 2, 0, 0)          sizer = wx.FlexGridSizer(4, 2, 0, 0)
762          sizer.Add(wxStaticText(self, -1, _("Latitude:")), 0, wxALL, 4)          sizer.Add(wx.StaticText(self, -1, _("Latitude:")), 0, wx.ALL, 4)
763          sizer.Add(self.__latitude, 0, wxALL, 4)          sizer.Add(self.__latitude, 0, wx.ALL, 4)
764          sizer.Add(wxStaticText(self, -1, _("Longitude:")), 0, wxALL, 4)          sizer.Add(wx.StaticText(self, -1, _("Longitude:")), 0, wx.ALL, 4)
765          sizer.Add(self.__longitude, 0, wxALL, 4)          sizer.Add(self.__longitude, 0, wx.ALL, 4)
766          sizer.Add(wxStaticText(self, -1, _("False Easting:")), 0, wxALL, 4)          sizer.Add(wx.StaticText(self, -1, _("False Easting:")), 0, wx.ALL, 4)
767          sizer.Add(self.__falseEast, 0, wxALL, 4)          sizer.Add(self.__falseEast, 0, wx.ALL, 4)
768          sizer.Add(wxStaticText(self, -1, _("False Northing:")), 0, wxALL, 4)          sizer.Add(wx.StaticText(self, -1, _("False Northing:")), 0, wx.ALL, 4)
769          sizer.Add(self.__falseNorth, 0, wxALL, 4)          sizer.Add(self.__falseNorth, 0, wx.ALL, 4)
770          sizer.Add(wxStaticText(self, -1, _("Scale Factor:")), 0, wxALL, 4)          sizer.Add(wx.StaticText(self, -1, _("Scale Factor:")), 0, wx.ALL, 4)
771          sizer.Add(self.__scale, 0, wxALL, 4)          sizer.Add(self.__scale, 0, wx.ALL, 4)
772    
773          ProjPanel._DoLayout(self, sizer)          ProjPanel._DoLayout(self, sizer)
774    
# Line 817  class UTMPanel(ProjPanel): Line 817  class UTMPanel(ProjPanel):
817    
818          self.receiver = receiver          self.receiver = receiver
819    
820          self.__zone = wxSpinCtrl(self, ID_UTMPANEL_ZONE, "1", min=1, max=60)          self.__zone = wx.SpinCtrl(self, ID_UTMPANEL_ZONE, "1", min=1, max=60)
821          self.__propButton = wxButton(self, ID_UTMPANEL_PROP, _("Propose"))          self.__propButton = wx.Button(self, ID_UTMPANEL_PROP, _("Propose"))
822          self.__south = wxCheckBox(self, ID_UTMPANEL_SOUTH,          self.__south = wx.CheckBox(self, ID_UTMPANEL_SOUTH,
823                                    _("Southern Hemisphere"))                                    _("Southern Hemisphere"))
824    
825          self._DoLayout()          self._DoLayout()
826    
827          EVT_BUTTON(self, ID_UTMPANEL_PROP, self._OnPropose)          self.Bind(wx.EVT_BUTTON, self._OnPropose, id=ID_UTMPANEL_PROP)
828    
829      def _DoLayout(self):      def _DoLayout(self):
830    
831          sizer = wxBoxSizer(wxVERTICAL)          sizer = wx.BoxSizer(wx.VERTICAL)
832          psizer = wxBoxSizer(wxHORIZONTAL)          psizer = wx.BoxSizer(wx.HORIZONTAL)
833          psizer.Add(wxStaticText(self, -1, _("Zone:")), 0, wxALL, 4)          psizer.Add(wx.StaticText(self, -1, _("Zone:")), 0, wx.ALL, 4)
834          psizer.Add(self.__zone, 0, wxALL, 4)          psizer.Add(self.__zone, 0, wx.ALL, 4)
835          psizer.Add(self.__propButton, 0, wxALL, 4)          psizer.Add(self.__propButton, 0, wx.ALL, 4)
836          sizer.Add(psizer, 0, wxALL, 4)          sizer.Add(psizer, 0, wx.ALL, 4)
837          sizer.Add(self.__south, 0, wxALL, 4)          sizer.Add(self.__south, 0, wx.ALL, 4)
838    
839          ProjPanel._DoLayout(self, sizer)          ProjPanel._DoLayout(self, sizer)
840    
# Line 866  class UTMPanel(ProjPanel): Line 866  class UTMPanel(ProjPanel):
866          """          """
867          bb = self.receiver.BoundingBox()          bb = self.receiver.BoundingBox()
868          if bb is None:          if bb is None:
869              dlg = wxMessageDialog(self,              dlg = wx.MessageDialog(self,
870                      _("Can not propose: No bounding box found."),                      _("Can not propose: No bounding box found."),
871                      _("Projection: Propose UTM Zone"),                      _("Projection: Propose UTM Zone"),
872                      wxOK | wxICON_INFORMATION)                      wx.OK | wx.ICON_INFORMATION)
873              dlg.CenterOnParent()              dlg.CenterOnParent()
874              result = dlg.ShowModal()              result = dlg.ShowModal()
875              dlg.Destroy()              dlg.Destroy()
876              return              return
877    
878          dlg = UTMProposeZoneDialog(self, self.receiver.BoundingBox())          dlg = UTMProposeZoneDialog(self, self.receiver.BoundingBox())
879          if dlg.ShowModal() == wxID_OK:          if dlg.ShowModal() == wx.ID_OK:
880              self.__zone.SetValue(dlg.GetProposedZone())              self.__zone.SetValue(dlg.GetProposedZone())
881    
882  class LCCPanel(ProjPanel):  class LCCPanel(ProjPanel):
883      """Projection Panel for Lambert Conic Conformal."""      """Projection Panel for Lambert Conic Conformal."""
884    
885      def __init__(self, parent, receiver):      def __init__(self, parent, receiver):
886          ProjPanel.__init__(self, parent)          ProjPanel.__init__(self, parent)
887            
888          self.__fspLatitude = wxTextCtrl(self, -1)          self.__fspLatitude = wx.TextCtrl(self, -1)
889          self.__sspLatitude = wxTextCtrl(self, -1)          self.__sspLatitude = wx.TextCtrl(self, -1)
890          self.__meridian    = wxTextCtrl(self, -1)          self.__meridian    = wx.TextCtrl(self, -1)
891          self.__originLat   = wxTextCtrl(self, -1)          self.__originLat   = wx.TextCtrl(self, -1)
892          self.__falseEast   = wxTextCtrl(self, -1)          self.__falseEast   = wx.TextCtrl(self, -1)
893          self.__falseNorth  = wxTextCtrl(self, -1)          self.__falseNorth  = wx.TextCtrl(self, -1)
894    
895          self._DoLayout()          self._DoLayout()
896    
897      def _DoLayout(self):      def _DoLayout(self):
898    
899          sizer = wxFlexGridSizer(6, 2, 0, 0)          sizer = wx.FlexGridSizer(6, 2, 0, 0)
900          sizer.Add(wxStaticText(self, -1,          sizer.Add(wx.StaticText(self, -1,
901              _("Latitude of first standard parallel:")))              _("Latitude of first standard parallel:")))
902          sizer.Add(self.__fspLatitude, 0, wxALL, 4)          sizer.Add(self.__fspLatitude, 0, wx.ALL, 4)
903          sizer.Add(wxStaticText(self, -1,          sizer.Add(wx.StaticText(self, -1,
904              _("Latitude of second standard parallel:")))              _("Latitude of second standard parallel:")))
905          sizer.Add(self.__sspLatitude, 0, wxALL, 4)          sizer.Add(self.__sspLatitude, 0, wx.ALL, 4)
906          sizer.Add(wxStaticText(self, -1, _("Central Meridian:")))          sizer.Add(wx.StaticText(self, -1, _("Central Meridian:")))
907          sizer.Add(self.__meridian, 0, wxALL, 4)          sizer.Add(self.__meridian, 0, wx.ALL, 4)
908          sizer.Add(wxStaticText(self, -1, _("Latitude of origin:")))          sizer.Add(wx.StaticText(self, -1, _("Latitude of origin:")))
909          sizer.Add(self.__originLat, 0, wxALL, 4)          sizer.Add(self.__originLat, 0, wx.ALL, 4)
910          sizer.Add(wxStaticText(self, -1, _("False Easting:")))          sizer.Add(wx.StaticText(self, -1, _("False Easting:")))
911          sizer.Add(self.__falseEast, 0, wxALL, 4)          sizer.Add(self.__falseEast, 0, wx.ALL, 4)
912          sizer.Add(wxStaticText(self, -1, _("False Northing:")))          sizer.Add(wx.StaticText(self, -1, _("False Northing:")))
913          sizer.Add(self.__falseNorth, 0, wxALL, 4)          sizer.Add(self.__falseNorth, 0, wx.ALL, 4)
914    
915          ProjPanel._DoLayout(self, sizer)          ProjPanel._DoLayout(self, sizer)
916    
917      def GetProjName(self):      def GetProjName(self):
918          return _("Lambert Conic Conformal")          return _("Lambert Conic Conformal")
919            
920      def SetProjection(self, proj):      def SetProjection(self, proj):
921          self.__fspLatitude.SetValue(proj.GetParameter("lat_1"))          self.__fspLatitude.SetValue(proj.GetParameter("lat_1"))
922          self.__sspLatitude.SetValue(proj.GetParameter("lat_2"))          self.__sspLatitude.SetValue(proj.GetParameter("lat_2"))
# Line 928  class LCCPanel(ProjPanel): Line 928  class LCCPanel(ProjPanel):
928          ProjPanel.SetProjection(self, proj)          ProjPanel.SetProjection(self, proj)
929    
930      def GetParameters(self):      def GetParameters(self):
931          params = ["proj=lcc",          params = ["proj=lcc",
932                    "lat_1=" + self.__fspLatitude.GetValue(),                    "lat_1=" + self.__fspLatitude.GetValue(),
933                    "lat_2=" + self.__sspLatitude.GetValue(),                    "lat_2=" + self.__sspLatitude.GetValue(),
934                    "lat_0=" + self.__originLat.GetValue(),                    "lat_0=" + self.__originLat.GetValue(),
# Line 949  class LCCPanel(ProjPanel): Line 949  class LCCPanel(ProjPanel):
949    
950          ProjPanel.Clear(self)          ProjPanel.Clear(self)
951    
952  class GeoPanel(ProjPanel):  class GeoPanel(ProjPanel):
953      """Projection Panel for a Geographic Projection."""      """Projection Panel for a Geographic Projection."""
954    
955      def __init__(self, parent, receiver):      def __init__(self, parent, receiver):
# Line 958  class GeoPanel(ProjPanel): Line 958  class GeoPanel(ProjPanel):
958          self.__choices = [(_("Degrees"), "0.017453"),          self.__choices = [(_("Degrees"), "0.017453"),
959                            (_("Radians"), "1")]                            (_("Radians"), "1")]
960    
961          self.__scale = wxChoice(self, -1)          self.__scale = wx.Choice(self, -1)
962          for choice, value in self.__choices:          for choice, value in self.__choices:
963              self.__scale.Append(choice, value)              self.__scale.Append(choice, value)
964    
# Line 966  class GeoPanel(ProjPanel): Line 966  class GeoPanel(ProjPanel):
966    
967      def GetProjName(self):      def GetProjName(self):
968          return _("Geographic")          return _("Geographic")
969            
970      def SetProjection(self, proj):      def SetProjection(self, proj):
971          value = proj.GetParameter("to_meter")          value = proj.GetParameter("to_meter")
972          for i in range(len(self.__choices)):          for i in range(len(self.__choices)):
# Line 976  class GeoPanel(ProjPanel): Line 976  class GeoPanel(ProjPanel):
976          ProjPanel.SetProjection(self, proj)          ProjPanel.SetProjection(self, proj)
977    
978      def GetParameters(self):      def GetParameters(self):
979          params = ["proj=latlong",          params = ["proj=latlong",
980                    "to_meter=%s" % self.__scale.GetClientData(                    "to_meter=%s" % self.__scale.GetClientData(
981                                    self.__scale.GetSelection())]                                    self.__scale.GetSelection())]
982    
# Line 987  class GeoPanel(ProjPanel): Line 987  class GeoPanel(ProjPanel):
987          ProjPanel.Clear(self)          ProjPanel.Clear(self)
988    
989      def _DoLayout(self):      def _DoLayout(self):
990          sizer = wxBoxSizer(wxHORIZONTAL)          sizer = wx.BoxSizer(wx.HORIZONTAL)
991    
992          sizer.Add(wxStaticText(self, -1, _("Source Data is in: ")),          sizer.Add(wx.StaticText(self, -1, _("Source Data is in: ")),
993                    0, wxALL|wxALIGN_CENTER_VERTICAL, 4)                    0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 4)
994          sizer.Add(self.__scale, 1, wxEXPAND|wxALL, 4)          sizer.Add(self.__scale, 1, wx.EXPAND|wx.ALL, 4)
995    
996          self.__scale.SetSelection(0)          self.__scale.SetSelection(0)
997    
# Line 1000  class GeoPanel(ProjPanel): Line 1000  class GeoPanel(ProjPanel):
1000    
1001  ID_UTM_PROPOSE_ZONE_DIALOG_TAKE   = 4001  ID_UTM_PROPOSE_ZONE_DIALOG_TAKE   = 4001
1002  ID_UTM_PROPOSE_ZONE_DIALOG_CANCEL = 4002  ID_UTM_PROPOSE_ZONE_DIALOG_CANCEL = 4002
1003  class UTMProposeZoneDialog(wxDialog):  class UTMProposeZoneDialog(wx.Dialog):
1004    
1005      """Propose a sensible Zone considering the current map extent."""      """Propose a sensible Zone considering the current map extent."""
1006    
1007      def __init__(self, parent, (x, y, x2, y2)):      def __init__(self, parent, (x, y, x2, y2)):
1008          wxDialog.__init__(self, parent, -1, _("Projection: Propose UTM Zone"),          wx.Dialog.__init__(self, parent, -1, _("Projection: Propose UTM Zone"),
1009                            wxDefaultPosition, wxSize(200, 100))                            wx.DefaultPosition, wx.Size(200, 100))
1010          self.parent = parent          self.parent = parent
1011          x = x + 180          x = x + 180
1012          x2 = x2 + 180          x2 = x2 + 180
# Line 1015  class UTMProposeZoneDialog(wxDialog): Line 1015  class UTMProposeZoneDialog(wxDialog):
1015          self.dialogLayout()          self.dialogLayout()
1016    
1017      def dialogLayout(self):      def dialogLayout(self):
1018          topBox = wxBoxSizer(wxVERTICAL)          topBox = wx.BoxSizer(wx.VERTICAL)
1019    
1020          textBox = wxBoxSizer(wxVERTICAL)          textBox = wx.BoxSizer(wx.VERTICAL)
1021          textBox.Add(wxStaticText(self, -1, _("The current map extent center "          textBox.Add(wx.StaticText(self, -1, _("The current map extent center "
1022                                               "lies in UTM Zone")),                                               "lies in UTM Zone")),
1023                      0, wxALIGN_CENTER|wxALL, 4)                      0, wx.ALIGN_CENTER|wx.ALL, 4)
1024          textBox.Add(wxStaticText(self, -1, str(self.proposedZone)),          textBox.Add(wx.StaticText(self, -1, str(self.proposedZone)),
1025                      0, wxALIGN_CENTER|wxALL, 4)                      0, wx.ALIGN_CENTER|wx.ALL, 4)
1026    
1027          topBox.Add(textBox, 1, wxEXPAND|wxALL, 4)          topBox.Add(textBox, 1, wx.EXPAND|wx.ALL, 4)
1028    
1029          buttonBox = wxBoxSizer(wxHORIZONTAL)          buttonBox = wx.BoxSizer(wx.HORIZONTAL)
1030          buttonBox.Add(wxButton(self, ID_UTM_PROPOSE_ZONE_DIALOG_TAKE,          buttonBox.Add(wx.Button(self, ID_UTM_PROPOSE_ZONE_DIALOG_TAKE,
1031                        _("Take")), 0, wxALL, 4)                        _("Take")), 0, wx.ALL, 4)
1032          buttonBox.Add(wxButton(self, ID_UTM_PROPOSE_ZONE_DIALOG_CANCEL,          buttonBox.Add(wx.Button(self, ID_UTM_PROPOSE_ZONE_DIALOG_CANCEL,
1033                                 _("Cancel")), 0, wxALL, 4)                                 _("Cancel")), 0, wx.ALL, 4)
1034          topBox.Add(buttonBox, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 10)          topBox.Add(buttonBox, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, 10)
1035          EVT_BUTTON(self, ID_UTM_PROPOSE_ZONE_DIALOG_TAKE, self.OnTake)          self.Bind(wx.EVT_BUTTON, self.OnTake, id=ID_UTM_PROPOSE_ZONE_DIALOG_TAKE)
1036          EVT_BUTTON(self, ID_UTM_PROPOSE_ZONE_DIALOG_CANCEL, self.OnCancel)          self.Bind(wx.EVT_BUTTON, self.OnCancel, id=ID_UTM_PROPOSE_ZONE_DIALOG_CANCEL)
1037    
1038          self.SetAutoLayout(True)          self.SetAutoLayout(True)
1039          self.SetSizer(topBox)          self.SetSizer(topBox)
# Line 1041  class UTMProposeZoneDialog(wxDialog): Line 1041  class UTMProposeZoneDialog(wxDialog):
1041          topBox.SetSizeHints(self)          topBox.SetSizeHints(self)
1042    
1043      def OnTake(self, event):      def OnTake(self, event):
1044          self.EndModal(wxID_OK)          self.EndModal(wx.ID_OK)
1045    
1046      def OnCancel(self, event):      def OnCancel(self, event):
1047          self.EndModal(wxID_CANCEL)          self.EndModal(wx.ID_CANCEL)
1048    
1049      def GetProposedZone(self):      def GetProposedZone(self):
1050          return self.proposedZone          return self.proposedZone

Legend:
Removed from v.2561  
changed lines
  Added in v.2700

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26