|
@@ -809,7 +809,6 @@ class LayerSelect(wx.ComboBox):
|
|
|
|
|
|
if vector:
|
|
if vector:
|
|
layers = GetVectorNumberOfLayers(vector)
|
|
layers = GetVectorNumberOfLayers(vector)
|
|
-
|
|
|
|
elif dsn:
|
|
elif dsn:
|
|
ret = RunCommand('v.in.ogr',
|
|
ret = RunCommand('v.in.ogr',
|
|
read = True,
|
|
read = True,
|
|
@@ -916,7 +915,8 @@ class ColumnSelect(wx.combo.ComboCtrl):
|
|
param = None, **kwargs):
|
|
param = None, **kwargs):
|
|
self.defaultValue = value
|
|
self.defaultValue = value
|
|
self.param = param
|
|
self.param = param
|
|
-
|
|
|
|
|
|
+ self.columns = []
|
|
|
|
+
|
|
wx.combo.ComboCtrl.__init__(self, parent, id, size = size, **kwargs)
|
|
wx.combo.ComboCtrl.__init__(self, parent, id, size = size, **kwargs)
|
|
self.GetChildren()[0].SetName("ColumnSelect")
|
|
self.GetChildren()[0].SetName("ColumnSelect")
|
|
self.GetChildren()[0].type = type
|
|
self.GetChildren()[0].type = type
|
|
@@ -928,7 +928,10 @@ class ColumnSelect(wx.combo.ComboCtrl):
|
|
if vector:
|
|
if vector:
|
|
self.InsertColumns(vector, layer)
|
|
self.InsertColumns(vector, layer)
|
|
self.GetChildren()[0].Bind(wx.EVT_KEY_UP, self.OnKeyUp)
|
|
self.GetChildren()[0].Bind(wx.EVT_KEY_UP, self.OnKeyUp)
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ def GetColumns(self):
|
|
|
|
+ return self.columns
|
|
|
|
+
|
|
def OnKeyUp(self, event):
|
|
def OnKeyUp(self, event):
|
|
"""!Shows popupwindow if down arrow key is released"""
|
|
"""!Shows popupwindow if down arrow key is released"""
|
|
if event.GetKeyCode() == wx.WXK_DOWN and not self.IsPopupShown():
|
|
if event.GetKeyCode() == wx.WXK_DOWN and not self.IsPopupShown():
|
|
@@ -936,6 +939,10 @@ class ColumnSelect(wx.combo.ComboCtrl):
|
|
else:
|
|
else:
|
|
event.Skip()
|
|
event.Skip()
|
|
|
|
|
|
|
|
+ def Clear(self):
|
|
|
|
+ self.tcp.DeleteAllItems()
|
|
|
|
+ self.SetValue('')
|
|
|
|
+
|
|
def InsertColumns(self, vector, layer, excludeKey = False, excludeCols = None, type = None, dbInfo = None):
|
|
def InsertColumns(self, vector, layer, excludeKey = False, excludeCols = None, type = None, dbInfo = None):
|
|
"""!Insert columns for a vector attribute table into the columns combobox
|
|
"""!Insert columns for a vector attribute table into the columns combobox
|
|
|
|
|
|
@@ -947,7 +954,7 @@ class ColumnSelect(wx.combo.ComboCtrl):
|
|
"""
|
|
"""
|
|
if not dbInfo:
|
|
if not dbInfo:
|
|
dbInfo = VectorDBInfo(vector)
|
|
dbInfo = VectorDBInfo(vector)
|
|
-
|
|
|
|
|
|
+
|
|
try:
|
|
try:
|
|
try:
|
|
try:
|
|
layer = int(layer)
|
|
layer = int(layer)
|
|
@@ -957,35 +964,35 @@ class ColumnSelect(wx.combo.ComboCtrl):
|
|
table = dbInfo.GetTable(layer)
|
|
table = dbInfo.GetTable(layer)
|
|
columnchoices = dbInfo.GetTableDesc(table)
|
|
columnchoices = dbInfo.GetTableDesc(table)
|
|
keyColumn = dbInfo.GetKeyColumn(layer)
|
|
keyColumn = dbInfo.GetKeyColumn(layer)
|
|
- columns = len(columnchoices.keys()) * ['']
|
|
|
|
|
|
+ self.columns = len(columnchoices.keys()) * ['']
|
|
for key, val in columnchoices.iteritems():
|
|
for key, val in columnchoices.iteritems():
|
|
- columns[val['index']] = key
|
|
|
|
|
|
+ self.columns[val['index']] = key
|
|
if excludeKey: # exclude key column
|
|
if excludeKey: # exclude key column
|
|
- columns.remove(keyColumn)
|
|
|
|
|
|
+ self.columns.remove(keyColumn)
|
|
if excludeCols: # exclude key column
|
|
if excludeCols: # exclude key column
|
|
for key in columnchoices.iterkeys():
|
|
for key in columnchoices.iterkeys():
|
|
if key in excludeCols:
|
|
if key in excludeCols:
|
|
- columns.remove(key)
|
|
|
|
|
|
+ self.columns.remove(key)
|
|
if type: # only selected column types
|
|
if type: # only selected column types
|
|
for key, value in columnchoices.iteritems():
|
|
for key, value in columnchoices.iteritems():
|
|
if value['type'] not in type:
|
|
if value['type'] not in type:
|
|
try:
|
|
try:
|
|
- columns.remove(key)
|
|
|
|
|
|
+ self.columns.remove(key)
|
|
except ValueError:
|
|
except ValueError:
|
|
pass
|
|
pass
|
|
except (KeyError, ValueError):
|
|
except (KeyError, ValueError):
|
|
- columns = list()
|
|
|
|
|
|
+ self.columns[:] = []
|
|
|
|
|
|
# update list
|
|
# update list
|
|
self.tcp.DeleteAllItems()
|
|
self.tcp.DeleteAllItems()
|
|
- for col in columns:
|
|
|
|
|
|
+ for col in self.columns:
|
|
self.tcp.AddItem(col)
|
|
self.tcp.AddItem(col)
|
|
|
|
|
|
self.SetValue(self.defaultValue)
|
|
self.SetValue(self.defaultValue)
|
|
|
|
|
|
if self.param:
|
|
if self.param:
|
|
value = self.param.get('value', '')
|
|
value = self.param.get('value', '')
|
|
- if value != '' and value in columns:
|
|
|
|
|
|
+ if value != '' and value in self.columns:
|
|
self.SetValue(value)
|
|
self.SetValue(value)
|
|
|
|
|
|
def InsertTableColumns(self, table, driver=None, database=None):
|
|
def InsertTableColumns(self, table, driver=None, database=None):
|
|
@@ -995,7 +1002,7 @@ class ColumnSelect(wx.combo.ComboCtrl):
|
|
@param driver driver name
|
|
@param driver driver name
|
|
@param database database name
|
|
@param database database name
|
|
"""
|
|
"""
|
|
- columns = list()
|
|
|
|
|
|
+ self.columns[:] = []
|
|
|
|
|
|
ret = RunCommand('db.columns',
|
|
ret = RunCommand('db.columns',
|
|
read = True,
|
|
read = True,
|
|
@@ -1004,17 +1011,17 @@ class ColumnSelect(wx.combo.ComboCtrl):
|
|
table = table)
|
|
table = table)
|
|
|
|
|
|
if ret:
|
|
if ret:
|
|
- columns = ret.splitlines()
|
|
|
|
|
|
+ self.columns = ret.splitlines()
|
|
|
|
|
|
# update list
|
|
# update list
|
|
self.tcp.DeleteAllItems()
|
|
self.tcp.DeleteAllItems()
|
|
self.SetValue(self.defaultValue)
|
|
self.SetValue(self.defaultValue)
|
|
|
|
|
|
- for col in columns:
|
|
|
|
|
|
+ for col in self.columns:
|
|
self.tcp.AddItem(col)
|
|
self.tcp.AddItem(col)
|
|
if self.param:
|
|
if self.param:
|
|
value = self.param.get('value', '')
|
|
value = self.param.get('value', '')
|
|
- if value != '' and value in columns:
|
|
|
|
|
|
+ if value != '' and value in self.columns:
|
|
self.SetValue(value)
|
|
self.SetValue(value)
|
|
|
|
|
|
class DbaseSelect(wx.lib.filebrowsebutton.DirBrowseButton):
|
|
class DbaseSelect(wx.lib.filebrowsebutton.DirBrowseButton):
|