[GRASS-SVN] r46510 -
grass/branches/releasebranch_6_4/gui/wxpython/gui_modules
svn_grass at osgeo.org
svn_grass at osgeo.org
Thu Jun 2 04:19:25 EDT 2011
Author: martinl
Date: 2011-06-02 01:19:25 -0700 (Thu, 02 Jun 2011)
New Revision: 46510
Modified:
grass/branches/releasebranch_6_4/gui/wxpython/gui_modules/gpyshell.py
Log:
wxGUI/pyshell: implement AddLayer()
(merge r46505, r46506, r46508 from trunk)
Modified: grass/branches/releasebranch_6_4/gui/wxpython/gui_modules/gpyshell.py
===================================================================
--- grass/branches/releasebranch_6_4/gui/wxpython/gui_modules/gpyshell.py 2011-06-02 08:13:05 UTC (rev 46509)
+++ grass/branches/releasebranch_6_4/gui/wxpython/gui_modules/gpyshell.py 2011-06-02 08:19:25 UTC (rev 46510)
@@ -29,14 +29,16 @@
class PyShellWindow(wx.Panel):
"""!Python Shell Window"""
def __init__(self, parent, id = wx.ID_ANY, **kwargs):
- self.parent = parent
+ self.parent = parent # GMFrame
wx.Panel.__init__(self, parent = parent, id = id, **kwargs)
self.intro = _("Welcome to wxGUI Interactive Python Shell %s") % VERSION + "\n\n" + \
- _("Type %s for more GRASS scripting related information.") % "\"help(grass)\"" + "\n\n"
+ _("Type %s for more GRASS scripting related information.") % "\"help(grass)\"" + "\n" + \
+ _("Type %s to add raster or vector to the layer tree.") % "\"AddLayer()\"" + "\n\n"
self.shell = PyShell(parent = self, id = wx.ID_ANY,
- introText = self.intro, locals = {'grass' : grass})
+ introText = self.intro, locals = {'grass' : grass,
+ 'AddLayer' : self.AddLayer})
sys.displayhook = self._displayhook
@@ -70,6 +72,39 @@
self.SetAutoLayout(True)
self.Layout()
+ def AddLayer(self, name, ltype = 'auto'):
+ """!Add selected map to the layer tree
+
+ @param name name of raster/vector map to be added
+ @param type map type ('raster', 'vector', 'auto' for autodetection)
+ """
+ fname = None
+ if ltype == 'raster' or ltype != 'vector':
+ # check for raster
+ fname = grass.find_file(name, element = 'cell')['fullname']
+ if fname:
+ ltype = 'raster'
+ lcmd = 'd.rast'
+
+ if not fname and (ltype == 'vector' or ltype != 'raster'):
+ # if not found check for vector
+ fname = grass.find_file(name, element = 'vector')['fullname']
+ if fname:
+ ltype = 'vector'
+ lcmd = 'd.vect'
+
+ if not fname:
+ return _("Raster or vector map <%s> not found") % (name)
+
+ self.parent.GetLayerTree().AddLayer(ltype = ltype,
+ lname = fname,
+ lchecked = True,
+ lcmd = [lcmd, 'map=%s' % fname])
+ if ltype == 'raster':
+ return _('Raster map <%s> added') % fname
+
+ return _('Vector map <%s> added') % fname
+
def OnClear(self, event):
"""!Delete all text from the shell
"""
More information about the grass-commit
mailing list