|
@@ -199,7 +199,7 @@ class UpdateThread(Thread):
|
|
pType = p.get('prompt', '')
|
|
pType = p.get('prompt', '')
|
|
if not pType:
|
|
if not pType:
|
|
return
|
|
return
|
|
-
|
|
|
|
|
|
+
|
|
# check for map/input parameter
|
|
# check for map/input parameter
|
|
pMap = self.task.get_param('map', raiseError=False)
|
|
pMap = self.task.get_param('map', raiseError=False)
|
|
if not pMap:
|
|
if not pMap:
|
|
@@ -295,7 +295,12 @@ class UpdateThread(Thread):
|
|
'database' : db }
|
|
'database' : db }
|
|
elif pTable:
|
|
elif pTable:
|
|
self.data[win.InsertTableColumns] = { 'table' : pTable.get('value') }
|
|
self.data[win.InsertTableColumns] = { 'table' : pTable.get('value') }
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ elif name == 'SubGroupSelect':
|
|
|
|
+ pGroup = self.task.get_param('group', element='element', raiseError=False)
|
|
|
|
+ if pGroup:
|
|
|
|
+ self.data[win.Insert] = { 'group' : pGroup.get('value', '')}
|
|
|
|
+
|
|
def UpdateDialog(parent, event, eventId, task):
|
|
def UpdateDialog(parent, event, eventId, task):
|
|
return UpdateThread(parent, event, eventId, task)
|
|
return UpdateThread(parent, event, eventId, task)
|
|
|
|
|
|
@@ -1359,6 +1364,7 @@ class cmdPanel(wx.Panel):
|
|
# GIS element entry
|
|
# GIS element entry
|
|
if p.get('prompt','') not in ('color',
|
|
if p.get('prompt','') not in ('color',
|
|
'color_none',
|
|
'color_none',
|
|
|
|
+ 'subgroup',
|
|
'dbdriver',
|
|
'dbdriver',
|
|
'dbname',
|
|
'dbname',
|
|
'dbtable',
|
|
'dbtable',
|
|
@@ -1374,7 +1380,6 @@ class cmdPanel(wx.Panel):
|
|
mapsets = [grass.gisenv()['MAPSET'],]
|
|
mapsets = [grass.gisenv()['MAPSET'],]
|
|
else:
|
|
else:
|
|
mapsets = None
|
|
mapsets = None
|
|
-
|
|
|
|
selection = gselect.Select(parent=which_panel, id=wx.ID_ANY,
|
|
selection = gselect.Select(parent=which_panel, id=wx.ID_ANY,
|
|
size=globalvar.DIALOG_GSELECT_SIZE,
|
|
size=globalvar.DIALOG_GSELECT_SIZE,
|
|
type=p.get('element', ''),
|
|
type=p.get('element', ''),
|
|
@@ -1432,11 +1437,24 @@ class cmdPanel(wx.Panel):
|
|
which_sizer.Add(item=selection, proportion=0,
|
|
which_sizer.Add(item=selection, proportion=0,
|
|
flag=wx.ADJUST_MINSIZE | wx.BOTTOM | wx.LEFT | wx.RIGHT | wx.TOP | wx.ALIGN_CENTER_VERTICAL,
|
|
flag=wx.ADJUST_MINSIZE | wx.BOTTOM | wx.LEFT | wx.RIGHT | wx.TOP | wx.ALIGN_CENTER_VERTICAL,
|
|
border=5)
|
|
border=5)
|
|
|
|
+ elif p.get('prompt', '') == 'group':
|
|
|
|
+ selection.Bind(wx.EVT_TEXT, self.OnUpdateSelection)
|
|
|
|
+ which_sizer.Add(item=selection, proportion=0,
|
|
|
|
+ flag=wx.ADJUST_MINSIZE | wx.BOTTOM | wx.LEFT | wx.RIGHT | wx.TOP | wx.ALIGN_CENTER_VERTICAL,
|
|
|
|
+ border=5)
|
|
else:
|
|
else:
|
|
which_sizer.Add(item=selection, proportion=0,
|
|
which_sizer.Add(item=selection, proportion=0,
|
|
flag=wx.ADJUST_MINSIZE | wx.BOTTOM | wx.LEFT | wx.RIGHT | wx.TOP | wx.ALIGN_CENTER_VERTICAL,
|
|
flag=wx.ADJUST_MINSIZE | wx.BOTTOM | wx.LEFT | wx.RIGHT | wx.TOP | wx.ALIGN_CENTER_VERTICAL,
|
|
border=5)
|
|
border=5)
|
|
-
|
|
|
|
|
|
+ # subgroup
|
|
|
|
+ elif p.get('prompt', '') == 'subgroup':
|
|
|
|
+ selection = gselect.SubGroupSelect(parent = which_panel)
|
|
|
|
+ p['wxId'] = [ selection.GetId() ]
|
|
|
|
+ selection.Bind(wx.EVT_COMBOBOX, self.OnSetValue)
|
|
|
|
+ which_sizer.Add(item = selection, proportion = 0,
|
|
|
|
+ flag = wx.ADJUST_MINSIZE | wx.BOTTOM | wx.LEFT | wx.RIGHT | wx.TOP | wx.ALIGN_CENTER_VERTICAL,
|
|
|
|
+ border = 5)
|
|
|
|
+
|
|
# layer, dbdriver, dbname, dbcolumn, dbtable entry
|
|
# layer, dbdriver, dbname, dbcolumn, dbtable entry
|
|
elif p.get('prompt', '') in ('dbdriver',
|
|
elif p.get('prompt', '') in ('dbdriver',
|
|
'dbname',
|
|
'dbname',
|
|
@@ -1593,6 +1611,8 @@ class cmdPanel(wx.Panel):
|
|
pDatabase = None
|
|
pDatabase = None
|
|
pTable = None
|
|
pTable = None
|
|
pColumn = []
|
|
pColumn = []
|
|
|
|
+ pGroup = None
|
|
|
|
+ pSubGroup = None
|
|
for p in self.task.params:
|
|
for p in self.task.params:
|
|
if p.get('gisprompt', False) == False:
|
|
if p.get('gisprompt', False) == False:
|
|
continue
|
|
continue
|
|
@@ -1625,6 +1645,10 @@ class cmdPanel(wx.Panel):
|
|
pDatabase = p
|
|
pDatabase = p
|
|
elif prompt == 'dbtable':
|
|
elif prompt == 'dbtable':
|
|
pTable = p
|
|
pTable = p
|
|
|
|
+ elif prompt == 'group':
|
|
|
|
+ pGroup = p
|
|
|
|
+ elif prompt == 'subgroup':
|
|
|
|
+ pSubGroup = p
|
|
|
|
|
|
# collect ids
|
|
# collect ids
|
|
pColumnIds = []
|
|
pColumnIds = []
|
|
@@ -1652,6 +1676,9 @@ class cmdPanel(wx.Panel):
|
|
if pTable and pColumnIds:
|
|
if pTable and pColumnIds:
|
|
pTable['wxId-bind'] = pColumnIds
|
|
pTable['wxId-bind'] = pColumnIds
|
|
|
|
|
|
|
|
+ if pGroup and pSubGroup:
|
|
|
|
+ pGroup['wxId-bind'] = pSubGroup['wxId']
|
|
|
|
+
|
|
#
|
|
#
|
|
# determine panel size
|
|
# determine panel size
|
|
#
|
|
#
|
|
@@ -1868,8 +1895,7 @@ class cmdPanel(wx.Panel):
|
|
event.Skip()
|
|
event.Skip()
|
|
|
|
|
|
def OnUpdateSelection(self, event):
|
|
def OnUpdateSelection(self, event):
|
|
- """
|
|
|
|
- Update dialog (layers, tables, columns, etc.)
|
|
|
|
|
|
+ """!Update dialog (layers, tables, columns, etc.)
|
|
"""
|
|
"""
|
|
if event:
|
|
if event:
|
|
self.parent.updateThread.Update(UpdateDialog,
|
|
self.parent.updateThread.Update(UpdateDialog,
|