toolbars.py 11 KB

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