|
@@ -990,15 +990,13 @@ class EllipsePage(TitledPage):
|
|
# search box
|
|
# search box
|
|
self.searchb = wx.SearchCtrl(self, size = (200,-1),
|
|
self.searchb = wx.SearchCtrl(self, size = (200,-1),
|
|
style = wx.TE_PROCESS_ENTER)
|
|
style = wx.TE_PROCESS_ENTER)
|
|
- """
|
|
|
|
-#todo: support for swapping ellipse.table list with ellipse.table.solar.system
|
|
|
|
# radio buttons
|
|
# radio buttons
|
|
self.radio1 = wx.RadioButton(parent = self, id = wx.ID_ANY,
|
|
self.radio1 = wx.RadioButton(parent = self, id = wx.ID_ANY,
|
|
label = _("Earth based"),
|
|
label = _("Earth based"),
|
|
style = wx.RB_GROUP)
|
|
style = wx.RB_GROUP)
|
|
self.radio2 = wx.RadioButton(parent = self, id = wx.ID_ANY,
|
|
self.radio2 = wx.RadioButton(parent = self, id = wx.ID_ANY,
|
|
label = _("Planetary bodies"))
|
|
label = _("Planetary bodies"))
|
|
- """
|
|
|
|
|
|
+
|
|
# create list control for ellipse list
|
|
# create list control for ellipse list
|
|
data = []
|
|
data = []
|
|
# extract code, desc
|
|
# extract code, desc
|
|
@@ -1020,11 +1018,10 @@ class EllipsePage(TitledPage):
|
|
flag = wx.ALIGN_LEFT |
|
|
flag = wx.ALIGN_LEFT |
|
|
wx.ALIGN_CENTER_VERTICAL |
|
|
wx.ALIGN_CENTER_VERTICAL |
|
|
wx.ALL, border = 5, pos = (1, 2))
|
|
wx.ALL, border = 5, pos = (1, 2))
|
|
- """
|
|
|
|
self.sizer.Add(item = self.radio1,
|
|
self.sizer.Add(item = self.radio1,
|
|
flag = wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT,
|
|
flag = wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT,
|
|
border = 25, pos = (1, 3))
|
|
border = 25, pos = (1, 3))
|
|
- """
|
|
|
|
|
|
+
|
|
self.sizer.Add(item = self.MakeLabel(_("Search in description:")),
|
|
self.sizer.Add(item = self.MakeLabel(_("Search in description:")),
|
|
flag = wx.ALIGN_RIGHT |
|
|
flag = wx.ALIGN_RIGHT |
|
|
wx.ALIGN_CENTER_VERTICAL |
|
|
wx.ALIGN_CENTER_VERTICAL |
|
|
@@ -1033,11 +1030,10 @@ class EllipsePage(TitledPage):
|
|
flag = wx.ALIGN_LEFT |
|
|
flag = wx.ALIGN_LEFT |
|
|
wx.ALIGN_CENTER_VERTICAL |
|
|
wx.ALIGN_CENTER_VERTICAL |
|
|
wx.ALL, border = 5, pos = (2, 2))
|
|
wx.ALL, border = 5, pos = (2, 2))
|
|
- """
|
|
|
|
self.sizer.Add(item = self.radio2,
|
|
self.sizer.Add(item = self.radio2,
|
|
flag = wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT,
|
|
flag = wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT,
|
|
border = 25, pos = (2, 3))
|
|
border = 25, pos = (2, 3))
|
|
- """
|
|
|
|
|
|
+
|
|
self.sizer.AddGrowableRow(3)
|
|
self.sizer.AddGrowableRow(3)
|
|
self.sizer.Add(item = self.ellipselist,
|
|
self.sizer.Add(item = self.ellipselist,
|
|
flag = wx.EXPAND |
|
|
flag = wx.EXPAND |
|
|
@@ -1049,10 +1045,10 @@ class EllipsePage(TitledPage):
|
|
self.tellipse.Bind(wx.EVT_TEXT, self.OnText)
|
|
self.tellipse.Bind(wx.EVT_TEXT, self.OnText)
|
|
self.tellipse.Bind(wx.EVT_TEXT_ENTER, self.OnText)
|
|
self.tellipse.Bind(wx.EVT_TEXT_ENTER, self.OnText)
|
|
self.searchb.Bind(wx.EVT_TEXT_ENTER, self.OnSearch)
|
|
self.searchb.Bind(wx.EVT_TEXT_ENTER, self.OnSearch)
|
|
- """
|
|
|
|
|
|
+
|
|
self.radio1.Bind(wx.EVT_RADIOBUTTON, self.SetVal, id = self.radio1.GetId())
|
|
self.radio1.Bind(wx.EVT_RADIOBUTTON, self.SetVal, id = self.radio1.GetId())
|
|
self.radio2.Bind(wx.EVT_RADIOBUTTON, self.SetVal, id = self.radio2.GetId())
|
|
self.radio2.Bind(wx.EVT_RADIOBUTTON, self.SetVal, id = self.radio2.GetId())
|
|
- """
|
|
|
|
|
|
+
|
|
self.Bind(wiz.EVT_WIZARD_PAGE_CHANGED, self.OnEnterPage)
|
|
self.Bind(wiz.EVT_WIZARD_PAGE_CHANGED, self.OnEnterPage)
|
|
self.Bind(wiz.EVT_WIZARD_PAGE_CHANGING, self.OnPageChanging)
|
|
self.Bind(wiz.EVT_WIZARD_PAGE_CHANGING, self.OnPageChanging)
|
|
|
|
|
|
@@ -1062,13 +1058,13 @@ class EllipsePage(TitledPage):
|
|
wx.FindWindowById(wx.ID_FORWARD).Enable(False)
|
|
wx.FindWindowById(wx.ID_FORWARD).Enable(False)
|
|
else:
|
|
else:
|
|
wx.FindWindowById(wx.ID_FORWARD).Enable(True)
|
|
wx.FindWindowById(wx.ID_FORWARD).Enable(True)
|
|
- """
|
|
|
|
self.scope = 'earth'
|
|
self.scope = 'earth'
|
|
- """
|
|
|
|
event.Skip()
|
|
event.Skip()
|
|
|
|
|
|
def OnPageChanging(self, event):
|
|
def OnPageChanging(self, event):
|
|
- if event.GetDirection() and self.ellipse not in self.parent.ellipsoids:
|
|
|
|
|
|
+ if event.GetDirection() \
|
|
|
|
+ and self.ellipse not in self.parent.ellipsoids \
|
|
|
|
+ and self.ellipse not in self.parent.planetary_ellipsoids:
|
|
event.Veto()
|
|
event.Veto()
|
|
|
|
|
|
self.proj4params = ''
|
|
self.proj4params = ''
|
|
@@ -1076,11 +1072,14 @@ class EllipsePage(TitledPage):
|
|
self.parent.datumpage.datumparams = ''
|
|
self.parent.datumpage.datumparams = ''
|
|
# self.GetNext().SetPrev(self) (???)
|
|
# self.GetNext().SetPrev(self) (???)
|
|
|
|
|
|
|
|
+ #FIXME: index number doesn't translate when you've given a valid name from the other list
|
|
def OnText(self, event):
|
|
def OnText(self, event):
|
|
"""!Ellipspoid code changed"""
|
|
"""!Ellipspoid code changed"""
|
|
self.ellipse = event.GetString()
|
|
self.ellipse = event.GetString()
|
|
nextButton = wx.FindWindowById(wx.ID_FORWARD)
|
|
nextButton = wx.FindWindowById(wx.ID_FORWARD)
|
|
- if len(self.ellipse) == 0 or self.ellipse not in self.parent.ellipsoids:
|
|
|
|
|
|
+ if len(self.ellipse) == 0 or \
|
|
|
|
+ (self.ellipse not in self.parent.ellipsoids and \
|
|
|
|
+ self.ellipse not in self.parent.planetary_ellipsoids):
|
|
nextButton.Enable(False)
|
|
nextButton.Enable(False)
|
|
self.ellipsedesc = ''
|
|
self.ellipsedesc = ''
|
|
self.ellipseparams = ''
|
|
self.ellipseparams = ''
|
|
@@ -1089,13 +1088,20 @@ class EllipsePage(TitledPage):
|
|
self.ellipsedesc = self.parent.ellipsoids[self.ellipse][0]
|
|
self.ellipsedesc = self.parent.ellipsoids[self.ellipse][0]
|
|
self.ellipseparams = self.parent.ellipsoids[self.ellipse][1]
|
|
self.ellipseparams = self.parent.ellipsoids[self.ellipse][1]
|
|
nextButton.Enable(True)
|
|
nextButton.Enable(True)
|
|
|
|
+ elif self.ellipse in self.parent.planetary_ellipsoids:
|
|
|
|
+ self.ellipsedesc = self.parent.planetary_ellipsoids[self.ellipse][0]
|
|
|
|
+ self.ellipseparams = self.parent.planetary_ellipsoids[self.ellipse][1]
|
|
|
|
+ nextButton.Enable(True)
|
|
|
|
|
|
def OnSearch(self, event):
|
|
def OnSearch(self, event):
|
|
"""!Search ellipsoid by desc"""
|
|
"""!Search ellipsoid by desc"""
|
|
try:
|
|
try:
|
|
self.ellipse, self.ellipsedesc = \
|
|
self.ellipse, self.ellipsedesc = \
|
|
self.ellipselist.Search(index=[0,1], pattern=event.GetString())
|
|
self.ellipselist.Search(index=[0,1], pattern=event.GetString())
|
|
- self.ellipseparams = self.parent.ellipsoids[self.ellipse][1]
|
|
|
|
|
|
+ if self.scope is 'earth':
|
|
|
|
+ self.ellipseparams = self.parent.ellipsoids[self.ellipse][1]
|
|
|
|
+ else:
|
|
|
|
+ self.ellipseparams = self.parent.planetary_ellipsoids[self.ellipse][1]
|
|
except:
|
|
except:
|
|
self.ellipse = self.ellipsedesc = self.ellipseparams = ''
|
|
self.ellipse = self.ellipsedesc = self.ellipseparams = ''
|
|
|
|
|
|
@@ -1110,20 +1116,22 @@ class EllipsePage(TitledPage):
|
|
self.tellipse.SetValue(self.ellipse)
|
|
self.tellipse.SetValue(self.ellipse)
|
|
|
|
|
|
event.Skip()
|
|
event.Skip()
|
|
- """ FIXME: how best to swap them out?
|
|
|
|
|
|
+
|
|
def SetVal(self, event):
|
|
def SetVal(self, event):
|
|
- #Choose table to use
|
|
|
|
|
|
+ """!Choose table to use"""
|
|
|
|
+ self.ellipselist.DeleteAllItems()
|
|
|
|
+ data = []
|
|
if event.GetId() == self.radio1.GetId():
|
|
if event.GetId() == self.radio1.GetId():
|
|
self.scope = 'earth'
|
|
self.scope = 'earth'
|
|
- data = []
|
|
|
|
for key in self.parent.ellipsoids.keys():
|
|
for key in self.parent.ellipsoids.keys():
|
|
data.append([key, self.parent.ellipsoids[key][0]])
|
|
data.append([key, self.parent.ellipsoids[key][0]])
|
|
elif event.GetId() == self.radio2.GetId():
|
|
elif event.GetId() == self.radio2.GetId():
|
|
self.scope = 'planetary'
|
|
self.scope = 'planetary'
|
|
- data = []
|
|
|
|
for key in self.parent.planetary_ellipsoids.keys():
|
|
for key in self.parent.planetary_ellipsoids.keys():
|
|
data.append([key, self.parent.planetary_ellipsoids[key][0]])
|
|
data.append([key, self.parent.planetary_ellipsoids[key][0]])
|
|
- """
|
|
|
|
|
|
+
|
|
|
|
+ self.ellipselist.Populate(data = data, update = True)
|
|
|
|
+
|
|
|
|
|
|
class GeoreferencedFilePage(TitledPage):
|
|
class GeoreferencedFilePage(TitledPage):
|
|
"""!Wizard page for selecting georeferenced file to use
|
|
"""!Wizard page for selecting georeferenced file to use
|
|
@@ -1938,7 +1946,7 @@ class LocationWizard(wx.Object):
|
|
paramslist = params.split()
|
|
paramslist = params.split()
|
|
self.ellipsoids[ellipse] = (desc, paramslist)
|
|
self.ellipsoids[ellipse] = (desc, paramslist)
|
|
f.close()
|
|
f.close()
|
|
- """
|
|
|
|
|
|
+
|
|
# read Planetary ellipsiod definitions
|
|
# read Planetary ellipsiod definitions
|
|
f = open(os.path.join(globalvar.ETCDIR, "proj", "ellipse.table.solar.system"), "r")
|
|
f = open(os.path.join(globalvar.ETCDIR, "proj", "ellipse.table.solar.system"), "r")
|
|
self.planetary_ellipsoids = {}
|
|
self.planetary_ellipsoids = {}
|
|
@@ -1954,7 +1962,7 @@ class LocationWizard(wx.Object):
|
|
paramslist = params.split()
|
|
paramslist = params.split()
|
|
self.planetary_ellipsoids[ellipse] = (desc, paramslist)
|
|
self.planetary_ellipsoids[ellipse] = (desc, paramslist)
|
|
f.close()
|
|
f.close()
|
|
- """
|
|
|
|
|
|
+
|
|
# read projection parameter description and parsing table
|
|
# read projection parameter description and parsing table
|
|
f = open(os.path.join(globalvar.ETCDIR, "proj", "desc.table"), "r")
|
|
f = open(os.path.join(globalvar.ETCDIR, "proj", "desc.table"), "r")
|
|
self.paramdesc = {}
|
|
self.paramdesc = {}
|