toolbars.py 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. """!
  2. @package lmgr.toolbars
  3. @brief wxGUI Layer Manager - toolbars
  4. Classes:
  5. - LMWorkspaceToolbar
  6. - LMDataToolbar
  7. - LMToolsToolbar
  8. - LMMiscToolbar
  9. - LMVectorToolbar
  10. - LMNvizToolbar
  11. (C) 2007-2011 by the GRASS Development Team
  12. This program is free software under the GNU General Public License
  13. (>=v2). Read the file COPYING that comes with GRASS for details.
  14. @author Michael Barton
  15. @author Jachym Cepicky
  16. @author Martin Landa <landa.martin gmail.com>
  17. @author Anna Kratochvilova <kratochanna gmail.com>
  18. """
  19. import os
  20. import sys
  21. from core import globalvar
  22. from core.gcmd import RunCommand
  23. from nviz.preferences import NvizPreferencesDialog
  24. from gui_core.toolbars import BaseToolbar
  25. sys.path.append(os.path.join(globalvar.ETCWXDIR, "icons"))
  26. from icons.icon import Icons
  27. class LMWorkspaceToolbar(BaseToolbar):
  28. """!Layer Manager `workspace` toolbar
  29. """
  30. def __init__(self, parent):
  31. BaseToolbar.__init__(self, parent)
  32. self.InitToolbar(self._toolbarData())
  33. # realize the toolbar
  34. self.Realize()
  35. def _toolbarData(self):
  36. """!Toolbar data
  37. """
  38. icons = Icons['layerManager']
  39. return self._getToolbarData((('newdisplay', icons["newdisplay"],
  40. self.parent.OnNewDisplay),
  41. (None, ),
  42. ('workspaceNew', icons["workspaceNew"],
  43. self.parent.OnWorkspaceNew),
  44. ('workspaceOpen', icons["workspaceOpen"],
  45. self.parent.OnWorkspaceOpen),
  46. ('workspaceSave', icons["workspaceSave"],
  47. self.parent.OnWorkspaceSave),
  48. ))
  49. class LMDataToolbar(BaseToolbar):
  50. """!Layer Manager `data` toolbar
  51. """
  52. def __init__(self, parent):
  53. BaseToolbar.__init__(self, parent)
  54. self.InitToolbar(self._toolbarData())
  55. # realize the toolbar
  56. self.Realize()
  57. def _toolbarData(self):
  58. """!Toolbar data
  59. """
  60. icons = Icons['layerManager']
  61. return self._getToolbarData((('addMulti', icons["addMulti"],
  62. self.parent.OnAddMaps),
  63. ('addrast', icons["addRast"],
  64. self.parent.OnAddRaster),
  65. ('rastmisc', icons["rastMisc"],
  66. self.parent.OnAddRasterMisc),
  67. ('addvect', icons["addVect"],
  68. self.parent.OnAddVector),
  69. ('vectmisc', icons["vectMisc"],
  70. self.parent.OnAddVectorMisc),
  71. ('addgrp', icons["addGroup"],
  72. self.parent.OnAddGroup),
  73. ('addovl', icons["addOverlay"],
  74. self.parent.OnAddOverlay),
  75. ('delcmd', icons["delCmd"],
  76. self.parent.OnDeleteLayer),
  77. ))
  78. class LMToolsToolbar(BaseToolbar):
  79. """!Layer Manager `tools` toolbar
  80. """
  81. def __init__(self, parent):
  82. BaseToolbar.__init__(self, parent)
  83. self.InitToolbar(self._toolbarData())
  84. # realize the toolbar
  85. self.Realize()
  86. def _toolbarData(self):
  87. """!Toolbar data
  88. """
  89. icons = Icons['layerManager']
  90. return self._getToolbarData((('importMap', icons["import"],
  91. self.parent.OnImportMenu),
  92. (None, ),
  93. ('mapCalc', icons["mapcalc"],
  94. self.parent.OnMapCalculator),
  95. ('georect', Icons["georectify"]["georectify"],
  96. self.parent.OnGCPManager),
  97. ('modeler', icons["modeler"],
  98. self.parent.OnGModeler),
  99. ('mapOutput', icons['mapOutput'],
  100. self.parent.OnPsMap)
  101. ))
  102. class LMMiscToolbar(BaseToolbar):
  103. """!Layer Manager `misc` toolbar
  104. """
  105. def __init__(self, parent):
  106. BaseToolbar.__init__(self, parent)
  107. self.InitToolbar(self._toolbarData())
  108. # realize the toolbar
  109. self.Realize()
  110. def _toolbarData(self):
  111. """!Toolbar data
  112. """
  113. icons = Icons['layerManager']
  114. return self._getToolbarData((('settings', icons["settings"],
  115. self.parent.OnPreferences),
  116. ('help', Icons["misc"]["help"],
  117. self.parent.OnHelp),
  118. ))
  119. class LMVectorToolbar(BaseToolbar):
  120. """!Layer Manager `vector` toolbar
  121. """
  122. def __init__(self, parent):
  123. BaseToolbar.__init__(self, parent)
  124. self.InitToolbar(self._toolbarData())
  125. # realize the toolbar
  126. self.Realize()
  127. def _toolbarData(self):
  128. """!Toolbar data
  129. """
  130. icons = Icons['layerManager']
  131. return self._getToolbarData((('vdigit', icons["vdigit"],
  132. self.parent.OnVDigit),
  133. ('attribute', icons["attrTable"],
  134. self.parent.OnShowAttributeTable),
  135. ))
  136. class LMNvizToolbar(BaseToolbar):
  137. """!Nviz toolbar
  138. """
  139. def __init__(self, parent):
  140. self.lmgr = parent
  141. BaseToolbar.__init__(self, parent)
  142. # only one dialog can be open
  143. self.settingsDialog = None
  144. self.InitToolbar(self._toolbarData())
  145. # realize the toolbar
  146. self.Realize()
  147. def _toolbarData(self):
  148. """!Toolbar data"""
  149. icons = Icons['nviz']
  150. return self._getToolbarData((("nvizCmd", icons['nvizCmd'],
  151. self.OnNvizCmd),
  152. (None, ),
  153. ("settings", icons["settings"],
  154. self.OnSettings),
  155. ("help", icons["help"],
  156. self.OnHelp))
  157. )
  158. def OnNvizCmd(self, event):
  159. """!Show m.nviz.image command"""
  160. self.lmgr.GetLayerTree().GetMapDisplay().GetWindow().OnNvizCmd()
  161. def OnHelp(self, event):
  162. """!Show 3D view mode help"""
  163. if not self.lmgr:
  164. RunCommand('g.manual',
  165. entry = 'wxGUI.Nviz')
  166. else:
  167. log = self.lmgr.GetLogWindow()
  168. log.RunCmd(['g.manual',
  169. 'entry=wxGUI.Nviz'])
  170. def OnSettings(self, event):
  171. """!Show nviz notebook page"""
  172. if not self.settingsDialog:
  173. self.settingsDialog = NvizPreferencesDialog(parent = self.parent)
  174. self.settingsDialog.Show()