[GRASS-SVN] r48269 -
grass/branches/releasebranch_6_4/gui/wxpython/gui_modules
svn_grass at osgeo.org
svn_grass at osgeo.org
Tue Sep 13 12:48:54 EDT 2011
Author: martinl
Date: 2011-09-13 09:48:54 -0700 (Tue, 13 Sep 2011)
New Revision: 48269
Modified:
grass/branches/releasebranch_6_4/gui/wxpython/gui_modules/gselect.py
Log:
wxGUI/GDALImporter: add widget for defining extension in directory mode
(merge r48008 & r48009 from devbr6)
Modified: grass/branches/releasebranch_6_4/gui/wxpython/gui_modules/gselect.py
===================================================================
--- grass/branches/releasebranch_6_4/gui/wxpython/gui_modules/gselect.py 2011-09-13 16:28:07 UTC (rev 48268)
+++ grass/branches/releasebranch_6_4/gui/wxpython/gui_modules/gselect.py 2011-09-13 16:48:54 UTC (rev 48269)
@@ -1055,7 +1055,7 @@
label=" %s " % _("Settings"))
self.inputBox = wx.StaticBox(parent = self, id=wx.ID_ANY,
- label=" %s " % _("Source name"))
+ label=" %s " % _("Source"))
# source type
sources = list()
@@ -1153,6 +1153,9 @@
self.format = FormatSelect(parent = self,
ogr = ogr)
self.format.Bind(wx.EVT_CHOICE, self.OnSetFormat)
+ self.extension = wx.TextCtrl(parent = self, id = wx.ID_ANY)
+ self.extension.Bind(wx.EVT_TEXT, self.OnSetExtension)
+ self.extension.Hide()
if ogr:
fType = 'ogr'
@@ -1179,18 +1182,20 @@
self.input[self.dsnType][1].Show()
self.format.SetItems(self.input[self.dsnType][2])
- if not ogr:
- self.format.SetStringSelection('GeoTIFF')
- else:
- self.format.SetStringSelection('ESRI Shapefile')
-
self.dsnText = wx.StaticText(parent = self, id = wx.ID_ANY,
label = self.input[self.dsnType][0],
size = (75, -1))
- self.formatText = wx.StaticText(parent = self, id = wx.ID_ANY,
- label = _("Format:"))
+ self.extensionText = wx.StaticText(parent = self, id = wx.ID_ANY,
+ label = _("Extension:"))
+ self.extensionText.Hide()
+
self._layout()
+ if not ogr:
+ self.OnSetFormat(event = None, format = 'GeoTIFF')
+ else:
+ self.OnSetFormat(event = None, format = 'ESRI Shapefile')
+
def _layout(self):
"""!Layout"""
mainSizer = wx.BoxSizer(wx.VERTICAL)
@@ -1210,23 +1215,30 @@
inputSizer = wx.StaticBoxSizer(self.inputBox, wx.HORIZONTAL)
- self.dsnSizer = wx.GridBagSizer(vgap=3, hgap=3)
+ self.dsnSizer = wx.GridBagSizer(vgap = 3, hgap = 3)
self.dsnSizer.AddGrowableRow(1)
- self.dsnSizer.AddGrowableCol(1)
+ self.dsnSizer.AddGrowableCol(3)
self.dsnSizer.Add(item=self.dsnText,
flag=wx.ALIGN_CENTER_VERTICAL,
pos = (0, 0))
self.dsnSizer.Add(item=self.input[self.dsnType][1],
flag = wx.ALIGN_CENTER_VERTICAL | wx.EXPAND,
- pos = (0, 1))
+ pos = (0, 1), span = (1, 3))
- self.dsnSizer.Add(item=self.formatText,
- flag=wx.ALIGN_CENTER_VERTICAL,
+ self.dsnSizer.Add(item = wx.StaticText(parent = self, id = wx.ID_ANY,
+ label = _("Format:")),
+ flag = wx.ALIGN_CENTER_VERTICAL,
pos = (1, 0))
self.dsnSizer.Add(item=self.format,
flag = wx.ALIGN_CENTER_VERTICAL,
pos = (1, 1))
+ self.dsnSizer.Add(item = self.extensionText,
+ flag=wx.ALIGN_CENTER_VERTICAL,
+ pos = (1, 2))
+ self.dsnSizer.Add(item=self.extension,
+ flag = wx.ALIGN_CENTER_VERTICAL,
+ pos = (1, 3))
inputSizer.Add(item=self.dsnSizer, proportion=1,
flag=wx.EXPAND | wx.ALL)
@@ -1353,6 +1365,7 @@
changeCallback=self.OnSetDsn,
fileMask = format)
self.input[self.dsnType][1] = win
+
elif sel == self.sourceMap['dir']: # directory
self.dsnType = 'dir'
elif sel == self.sourceMap['db']: # database
@@ -1378,14 +1391,24 @@
self.OnSetFormat(event = None, format = 'GeoTIFF')
else:
self.OnSetFormat(event = None, format = 'ESRI Shapefile')
- elif sel == self.sourceMap['pro']:
- win = self.input[self.dsnType][1]
- self.dsnSizer.Add(item=self.input[self.dsnType][1],
- flag = wx.ALIGN_CENTER_VERTICAL | wx.EXPAND,
- pos = (0, 1))
- win.SetValue('')
- win.Show()
+ else:
+ if sel == self.sourceMap['pro']:
+ win = self.input[self.dsnType][1]
+ self.dsnSizer.Add(item=self.input[self.dsnType][1],
+ flag = wx.ALIGN_CENTER_VERTICAL | wx.EXPAND,
+ pos = (0, 1))
+ win.SetValue('')
+ win.Show()
+ if sel == self.sourceMap['dir']:
+ if not self.extension.IsShown():
+ self.extensionText.Show()
+ self.extension.Show()
+ else:
+ if self.extension.IsShown():
+ self.extensionText.Hide()
+ self.extension.Hide()
+
self.dsnSizer.Layout()
def _getDsn(self):
@@ -1412,6 +1435,17 @@
if not path:
return
+ self._reloadLayers()
+
+ if event:
+ event.Skip()
+
+ def _reloadLayers(self):
+ """!Reload list of layers"""
+ dsn = self._getDsn()
+ if not dsn:
+ return
+
data = list()
layerId = 1
@@ -1422,10 +1456,7 @@
grassName = utils.GetValidLayerName(baseName.split('.', -1)[0])
data.append((layerId, baseName, grassName))
elif self.dsnType == 'dir':
- try:
- ext = self.format.GetExtension(self.format.GetStringSelection())
- except KeyError:
- ext = ''
+ ext = self.extension.GetValue()
for file in glob.glob(os.path.join(dsn, "%s") % self._getExtPatternGlob(ext)):
baseName = os.path.basename(file)
grassName = utils.GetValidLayerName(baseName.split('.', -1)[0])
@@ -1460,8 +1491,10 @@
else:
self.parent.btn_run.Enable(False)
- if event:
- event.Skip()
+ def OnSetExtension(self, event):
+ """!Extension changed"""
+ # reload layers
+ self._reloadLayers()
def OnSetFormat(self, event, format = None):
"""!Format changed"""
@@ -1498,8 +1531,10 @@
startDirectory=os.getcwd(),
changeCallback=self.OnSetDsn,
fileMask = format)
+
elif self.dsnType == 'dir':
pass
+
else: # database
if format == 'SQLite' or format == 'Rasterlite':
win = self.input['db-win']['file']
@@ -1523,15 +1558,21 @@
win = self.input['db-win']['text']
else:
win = self.input['db-win']['text']
-
+
self.input[self.dsnType][1] = win
if not win.IsShown():
win.Show()
- self.dsnSizer.Add(item=self.input[self.dsnType][1],
+ self.dsnSizer.Add(item = self.input[self.dsnType][1],
flag = wx.ALIGN_CENTER_VERTICAL | wx.EXPAND,
- pos = (0, 1))
+ pos = (0, 1), span = (1, 3))
self.dsnSizer.Layout()
+
+ # update extension
+ self.extension.SetValue(self.GetFormatExt())
+ # reload layers
+ self._reloadLayers()
+
def GetType(self):
"""!Get source type"""
return self.dsnType
More information about the grass-commit
mailing list