toolbars.py 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. """
  2. @package lmgr.toolbars
  3. @brief wxGUI Layer Manager - toolbars
  4. Classes:
  5. - toolbars::LMWorkspaceToolbar
  6. - toolbars::LMDataToolbar
  7. - toolbars::LMToolsToolbar
  8. - toolbars::LMMiscToolbar
  9. - toolbars::LMVectorToolbar
  10. - toolbars::LMNvizToolbar
  11. (C) 2007-2013 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. from core.gcmd import RunCommand
  20. from gui_core.toolbars import BaseToolbar, BaseIcons
  21. from icons.icon import MetaIcon
  22. from core.utils import _
  23. class LMWorkspaceToolbar(BaseToolbar):
  24. """Layer Manager `workspace` toolbar
  25. """
  26. def __init__(self, parent):
  27. BaseToolbar.__init__(self, parent)
  28. self.InitToolbar(self._toolbarData())
  29. # realize the toolbar
  30. self.Realize()
  31. def _toolbarData(self):
  32. """Toolbar data
  33. """
  34. icons = {
  35. 'newdisplay' : MetaIcon(img = 'monitor-create',
  36. label = _('Start new map display')),
  37. 'workspaceNew' : MetaIcon(img = 'create',
  38. label = _('Create new workspace (Ctrl+N)')),
  39. 'workspaceOpen' : MetaIcon(img = 'open',
  40. label = _('Open existing workspace file (Ctrl+O)')),
  41. 'workspaceSave' : MetaIcon(img = 'save',
  42. label = _('Save current workspace to file (Ctrl+S)')),
  43. }
  44. return self._getToolbarData((('newdisplay', icons["newdisplay"],
  45. self.parent.OnNewDisplay),
  46. (None, ),
  47. ('workspaceNew', icons["workspaceNew"],
  48. self.parent.OnWorkspaceNew),
  49. ('workspaceOpen', icons["workspaceOpen"],
  50. self.parent.OnWorkspaceOpen),
  51. ('workspaceSave', icons["workspaceSave"],
  52. self.parent.OnWorkspaceSave),
  53. ))
  54. class LMDataToolbar(BaseToolbar):
  55. """Layer Manager `data` toolbar
  56. """
  57. def __init__(self, parent):
  58. BaseToolbar.__init__(self, parent)
  59. self.InitToolbar(self._toolbarData())
  60. # realize the toolbar
  61. self.Realize()
  62. def _toolbarData(self):
  63. """Toolbar data
  64. """
  65. icons = {
  66. 'addMulti' : MetaIcon(img = 'layer-open',
  67. label = _('Add multiple raster or vector map layers (Ctrl+Shift+L)')),
  68. 'addRast' : BaseIcons['addRast'].SetLabel(_("Add raster map layer (Ctrl+Shift+R)")),
  69. 'rastMisc' : MetaIcon(img = 'layer-raster-more',
  70. label = _('Add various raster map layers (RGB, HIS, shaded relief...)')),
  71. 'addVect' : BaseIcons['addVect'].SetLabel(_("Add vector map layer (Ctrl+Shift+V)")),
  72. 'vectMisc' : MetaIcon(img = 'layer-vector-more',
  73. label = _('Add various vector map layers (thematic, chart...)')),
  74. 'addWS' : MetaIcon(img = 'layer-wms-add',
  75. label = _('Add web service layer (WMS, WMTS, NASA OnEarth)')),
  76. 'addGroup' : MetaIcon(img = 'layer-group-add',
  77. label = _('Add group')),
  78. 'addOverlay' : MetaIcon(img = 'layer-more',
  79. label = _('Add various overlays')),
  80. 'delCmd' : MetaIcon(img = 'layer-remove',
  81. label = _('Remove selected map layer(s) from layer tree')),
  82. }
  83. return self._getToolbarData((('addMulti', icons["addMulti"],
  84. self.parent.OnAddMaps),
  85. ('addrast', icons["addRast"],
  86. self.parent.OnAddRaster),
  87. ('rastmisc', icons["rastMisc"],
  88. self.parent.OnAddRasterMisc),
  89. ('addvect', icons["addVect"],
  90. self.parent.OnAddVector),
  91. ('vectmisc', icons["vectMisc"],
  92. self.parent.OnAddVectorMisc),
  93. ('addovl', icons["addOverlay"],
  94. self.parent.OnAddOverlay),
  95. ('addWS', icons["addWS"],
  96. self.parent.OnAddWS),
  97. (None, ),
  98. ('addgrp', icons["addGroup"],
  99. self.parent.OnAddGroup),
  100. (None, ),
  101. ('delcmd', icons["delCmd"],
  102. self.parent.OnDeleteLayer),
  103. ))
  104. class LMToolsToolbar(BaseToolbar):
  105. """Layer Manager `tools` toolbar
  106. """
  107. def __init__(self, parent):
  108. BaseToolbar.__init__(self, parent)
  109. self.InitToolbar(self._toolbarData())
  110. # realize the toolbar
  111. self.Realize()
  112. def _toolbarData(self):
  113. """Toolbar data
  114. """
  115. icons = {
  116. 'import' : MetaIcon(img = 'layer-import',
  117. label = _('Import/link raster or vector data')),
  118. 'mapcalc' : MetaIcon(img = 'raster-calculator',
  119. label = _('Raster Map Calculator')),
  120. 'modeler' : MetaIcon(img = 'modeler-main',
  121. label = _('Graphical Modeler')),
  122. 'georectify' : MetaIcon(img = 'georectify',
  123. label = _('Georectifier')),
  124. 'composer': MetaIcon(img = 'print-compose',
  125. label = _('Cartographic Composer')),
  126. 'script-load': MetaIcon(img = 'script-load',
  127. label = _('Launch user-defined script')),
  128. }
  129. return self._getToolbarData((('importMap', icons["import"],
  130. self.parent.OnImportMenu),
  131. (None, ),
  132. ('mapCalc', icons["mapcalc"],
  133. self.parent.OnMapCalculator),
  134. ('georect', icons["georectify"],
  135. self.parent.OnGCPManager),
  136. ('modeler', icons["modeler"],
  137. self.parent.OnGModeler),
  138. ('mapOutput', icons['composer'],
  139. self.parent.OnPsMap),
  140. (None, ),
  141. ('script-load', icons['script-load'],
  142. self.parent.OnRunScript),
  143. ))
  144. class LMMiscToolbar(BaseToolbar):
  145. """Layer Manager `misc` toolbar
  146. """
  147. def __init__(self, parent):
  148. BaseToolbar.__init__(self, parent)
  149. self.InitToolbar(self._toolbarData())
  150. # realize the toolbar
  151. self.Realize()
  152. def _toolbarData(self):
  153. """Toolbar data
  154. """
  155. icons = {
  156. 'settings' : BaseIcons['settings'].SetLabel(_('GUI settings')),
  157. 'help' : BaseIcons['help'].SetLabel(_('GRASS manual')),
  158. }
  159. return self._getToolbarData((('settings', icons["settings"],
  160. self.parent.OnPreferences),
  161. ('help', icons["help"],
  162. self.parent.OnHelp),
  163. ))
  164. class LMVectorToolbar(BaseToolbar):
  165. """Layer Manager `vector` toolbar
  166. """
  167. def __init__(self, parent):
  168. BaseToolbar.__init__(self, parent)
  169. self.InitToolbar(self._toolbarData())
  170. # realize the toolbar
  171. self.Realize()
  172. def _toolbarData(self):
  173. """Toolbar data
  174. """
  175. icons = {
  176. 'vdigit' : MetaIcon(img = 'edit',
  177. label = _('Edit selected vector map')),
  178. 'attrTable' : MetaIcon(img = 'table',
  179. label = _('Show attribute data for selected vector map')),
  180. }
  181. return self._getToolbarData((('vdigit', icons["vdigit"],
  182. self.parent.OnVDigit),
  183. ('attribute', icons["attrTable"],
  184. self.parent.OnShowAttributeTable),
  185. ))
  186. class LMNvizToolbar(BaseToolbar):
  187. """Nviz toolbar
  188. """
  189. def __init__(self, parent):
  190. self.lmgr = parent
  191. BaseToolbar.__init__(self, parent)
  192. # only one dialog can be open
  193. self.settingsDialog = None
  194. self.InitToolbar(self._toolbarData())
  195. # realize the toolbar
  196. self.Realize()
  197. def _toolbarData(self):
  198. """Toolbar data"""
  199. icons = {
  200. 'cmd' : MetaIcon(img = 'script-save',
  201. label = _('Generate command for m.nviz.image'),
  202. desc = _('Generate command for m.nviz.image based on current state')),
  203. 'settings' : MetaIcon(img = '3d-settings',
  204. label = _('3D view mode settings'),
  205. desc = _('Show 3D view mode settings dialog')),
  206. 'help' : MetaIcon(img = '3d-help',
  207. label = _('Show 3D view mode manual')),
  208. }
  209. return self._getToolbarData((("nvizCmd", icons['cmd'],
  210. self.OnNvizCmd),
  211. (None, ),
  212. ("settings", icons["settings"],
  213. self.parent.OnNvizPreferences),
  214. ("help", icons["help"],
  215. self.OnHelp))
  216. )
  217. def OnNvizCmd(self, event):
  218. """Show m.nviz.image command"""
  219. self.lmgr.GetLayerTree().GetMapDisplay().GetWindow().OnNvizCmd()
  220. def OnHelp(self, event):
  221. """Show 3D view mode help"""
  222. if not self.lmgr:
  223. RunCommand('g.manual',
  224. entry = 'wxGUI.Nviz')
  225. else:
  226. log = self.lmgr.GetLogWindow()
  227. log.RunCmd(['g.manual',
  228. 'entry=wxGUI.Nviz'])