giface.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. """!
  2. @package lmgr.giface
  3. @brief Layer Manager GRASS interface
  4. Classes:
  5. - giface::LayerManagerGrassInterface
  6. (C) 2012 by the GRASS Development Team
  7. This program is free software under the GNU General Public License
  8. (>=v2). Read the file COPYING that comes with GRASS for details.
  9. @author Anna Kratochvilova <kratochanna gmail.com>
  10. @author Vaclav Petras <wenzeslaus gmail.com>
  11. """
  12. class Layer(object):
  13. def __init__(self, pydata):
  14. self._pydata = pydata
  15. def __getattr__(self, name):
  16. return self._pydata[0][name]
  17. class LayerList(object):
  18. def __init__(self, tree):
  19. self._tree = tree
  20. # def __iter__(self):
  21. # for in :
  22. # yield
  23. def GetSelectedLayers(self, checkedOnly = True):
  24. items = self._tree.GetSelectedLayer(multi = True, checkedOnly = True)
  25. layers = []
  26. for item in items:
  27. layer = Layer(self._tree.GetPyData(item))
  28. layers.append(layer)
  29. return layers
  30. def GetLayerInfo(self, layer):
  31. return Layer(self._tree.GetPyData(layer))
  32. class LayerManagerGrassInterface:
  33. def __init__(self, lmgr):
  34. self.lmgr = lmgr
  35. def RunCmd(self, *args, **kwargs):
  36. self.lmgr._gconsole.RunCmd(*args, **kwargs)
  37. def Help(self, entry):
  38. cmdlist = ['g.manual', 'entry=%s' % entry]
  39. self.RunCmd(cmdlist, compReg = False, switchPage = False)
  40. def WriteLog(self, text, wrap = None,
  41. switchPage = False, priority = 1):
  42. self.lmgr._gconsole.WriteLog(text = text, wrap = wrap, switchPage = switchPage,
  43. priority = priority)
  44. def WriteCmdLog(self, line, pid = None, switchPage = True):
  45. self.lmgr._gconsole.WriteCmdLog(line = line, pid = pid, switchPage = switchPage)
  46. def WriteWarning(self, line):
  47. self.lmgr._gconsole.WriteWarning(line = line)
  48. def WriteError(self, line):
  49. self.lmgr._gconsole.WriteError(line = line)
  50. def GetLayerTree(self):
  51. return LayerList(self.lmgr.GetLayerTree())
  52. def GetLayerList(self):
  53. return LayerList(self.lmgr.GetLayerTree())
  54. def GetMapDisplay(self):
  55. """!Get current map display.
  56. @return MapFrame instance
  57. @return None no mapdisplay open
  58. """
  59. return self.lmgr.GetMapDisplay(onlyCurrent=True)
  60. def GetAllMapDisplays(self):
  61. """!Get list of all map displays.
  62. @return list of MapFrame instances
  63. """
  64. return self.lmgr.GetMapDisplay(onlyCurrent=False)
  65. def GetMapWindow(self):
  66. if self.lmgr.GetMapDisplay(onlyCurrent=True):
  67. return self.lmgr.GetMapDisplay(onlyCurrent=True).GetMapWindow()
  68. else:
  69. return None
  70. def GetProgress(self):
  71. return self.lmgr.goutput.GetProgressBar()