|
GRASS Programmer's Manual
6.5.svn(2012)-r51648
|
00001 """! 00002 @package lmgr.toolbars 00003 00004 @brief wxGUI Layer Manager - toolbars 00005 00006 Classes: 00007 - toolbars::LMWorkspaceToolbar 00008 - toolbars::LMDataToolbar 00009 - toolbars::LMToolsToolbar 00010 - toolbars::LMMiscToolbar 00011 - toolbars::LMVectorToolbar 00012 - toolbars::LMNvizToolbar 00013 00014 (C) 2007-2011 by the GRASS Development Team 00015 00016 This program is free software under the GNU General Public License 00017 (>=v2). Read the file COPYING that comes with GRASS for details. 00018 00019 @author Michael Barton 00020 @author Jachym Cepicky 00021 @author Martin Landa <landa.martin gmail.com> 00022 @author Anna Kratochvilova <kratochanna gmail.com> 00023 """ 00024 00025 import os 00026 import sys 00027 00028 from core import globalvar 00029 from core.gcmd import RunCommand 00030 from nviz.preferences import NvizPreferencesDialog 00031 from gui_core.toolbars import BaseToolbar, BaseIcons 00032 from icons.icon import MetaIcon 00033 00034 class LMWorkspaceToolbar(BaseToolbar): 00035 """!Layer Manager `workspace` toolbar 00036 """ 00037 def __init__(self, parent): 00038 BaseToolbar.__init__(self, parent) 00039 00040 self.InitToolbar(self._toolbarData()) 00041 00042 # realize the toolbar 00043 self.Realize() 00044 00045 def _toolbarData(self): 00046 """!Toolbar data 00047 """ 00048 icons = { 00049 'newdisplay' : MetaIcon(img = 'monitor-create', 00050 label = _('Start new map display')), 00051 'workspaceNew' : MetaIcon(img = 'create', 00052 label = _('Create new workspace (Ctrl+N)')), 00053 'workspaceOpen' : MetaIcon(img = 'open', 00054 label = _('Open existing workspace file (Ctrl+O)')), 00055 'workspaceSave' : MetaIcon(img = 'save', 00056 label = _('Save current workspace to file (Ctrl+S)')), 00057 } 00058 return self._getToolbarData((('newdisplay', icons["newdisplay"], 00059 self.parent.OnNewDisplay), 00060 (None, ), 00061 ('workspaceNew', icons["workspaceNew"], 00062 self.parent.OnWorkspaceNew), 00063 ('workspaceOpen', icons["workspaceOpen"], 00064 self.parent.OnWorkspaceOpen), 00065 ('workspaceSave', icons["workspaceSave"], 00066 self.parent.OnWorkspaceSave), 00067 )) 00068 00069 class LMDataToolbar(BaseToolbar): 00070 """!Layer Manager `data` toolbar 00071 """ 00072 def __init__(self, parent): 00073 BaseToolbar.__init__(self, parent) 00074 00075 self.InitToolbar(self._toolbarData()) 00076 00077 # realize the toolbar 00078 self.Realize() 00079 00080 def _toolbarData(self): 00081 """!Toolbar data 00082 """ 00083 icons = { 00084 'addMulti' : MetaIcon(img = 'layer-open', 00085 label = _('Add multiple raster or vector map layers (Ctrl+Shift+L)')), 00086 'addRast' : BaseIcons['addRast'].SetLabel(_("Add raster map layer (Ctrl+Shift+R)")), 00087 'rastMisc' : MetaIcon(img = 'layer-raster-more', 00088 label = _('Add various raster map layers (RGB, HIS, shaded relief...)')), 00089 'addVect' : BaseIcons['addVect'].SetLabel(_("Add vector map layer (Ctrl+Shift+V)")), 00090 'vectMisc' : MetaIcon(img = 'layer-vector-more', 00091 label = _('Add various vector map layers (thematic, chart...)')), 00092 'addGroup' : MetaIcon(img = 'layer-group-add', 00093 label = _('Add group')), 00094 'addOverlay' : MetaIcon(img = 'layer-more', 00095 label = _('Add grid or vector labels overlay')), 00096 'delCmd' : MetaIcon(img = 'layer-remove', 00097 label = _('Delete selected map layer')), 00098 } 00099 00100 return self._getToolbarData((('addMulti', icons["addMulti"], 00101 self.parent.OnAddMaps), 00102 ('addrast', icons["addRast"], 00103 self.parent.OnAddRaster), 00104 ('rastmisc', icons["rastMisc"], 00105 self.parent.OnAddRasterMisc), 00106 ('addvect', icons["addVect"], 00107 self.parent.OnAddVector), 00108 ('vectmisc', icons["vectMisc"], 00109 self.parent.OnAddVectorMisc), 00110 ('addgrp', icons["addGroup"], 00111 self.parent.OnAddGroup), 00112 ('addovl', icons["addOverlay"], 00113 self.parent.OnAddOverlay), 00114 ('delcmd', icons["delCmd"], 00115 self.parent.OnDeleteLayer), 00116 )) 00117 00118 class LMToolsToolbar(BaseToolbar): 00119 """!Layer Manager `tools` toolbar 00120 """ 00121 def __init__(self, parent): 00122 BaseToolbar.__init__(self, parent) 00123 00124 self.InitToolbar(self._toolbarData()) 00125 00126 # realize the toolbar 00127 self.Realize() 00128 00129 def _toolbarData(self): 00130 """!Toolbar data 00131 """ 00132 icons = { 00133 'import' : MetaIcon(img = 'layer-import', 00134 label = _('Import/link raster or vector data')), 00135 'mapcalc' : MetaIcon(img = 'calculator', 00136 label = _('Raster Map Calculator')), 00137 'modeler' : MetaIcon(img = 'modeler-main', 00138 label = _('Graphical Modeler')), 00139 'georectify' : MetaIcon(img = 'georectify', 00140 label = _('Georectifier')), 00141 'composer': MetaIcon(img = 'print-compose', 00142 label = _('Cartographic Composer')), 00143 } 00144 00145 return self._getToolbarData((('importMap', icons["import"], 00146 self.parent.OnImportMenu), 00147 (None, ), 00148 ('mapCalc', icons["mapcalc"], 00149 self.parent.OnMapCalculator), 00150 ('georect', icons["georectify"], 00151 self.parent.OnGCPManager), 00152 ('modeler', icons["modeler"], 00153 self.parent.OnGModeler), 00154 ('mapOutput', icons['composer'], 00155 self.parent.OnPsMap) 00156 )) 00157 00158 class LMMiscToolbar(BaseToolbar): 00159 """!Layer Manager `misc` toolbar 00160 """ 00161 def __init__(self, parent): 00162 BaseToolbar.__init__(self, parent) 00163 00164 self.InitToolbar(self._toolbarData()) 00165 00166 # realize the toolbar 00167 self.Realize() 00168 00169 def _toolbarData(self): 00170 """!Toolbar data 00171 """ 00172 icons = { 00173 'settings' : BaseIcons['settings'].SetLabel(_('GUI settings')), 00174 'help' : BaseIcons['help'].SetLabel(_('GRASS manual')), 00175 } 00176 00177 return self._getToolbarData((('settings', icons["settings"], 00178 self.parent.OnPreferences), 00179 ('help', icons["help"], 00180 self.parent.OnHelp), 00181 )) 00182 00183 class LMVectorToolbar(BaseToolbar): 00184 """!Layer Manager `vector` toolbar 00185 """ 00186 def __init__(self, parent): 00187 BaseToolbar.__init__(self, parent) 00188 00189 self.InitToolbar(self._toolbarData()) 00190 00191 # realize the toolbar 00192 self.Realize() 00193 00194 def _toolbarData(self): 00195 """!Toolbar data 00196 """ 00197 icons = { 00198 'vdigit' : MetaIcon(img = 'edit', 00199 label = _('Edit vector maps')), 00200 'attrTable' : MetaIcon(img = 'table', 00201 label = _('Show attribute table')), 00202 } 00203 00204 return self._getToolbarData((('vdigit', icons["vdigit"], 00205 self.parent.OnVDigit), 00206 ('attribute', icons["attrTable"], 00207 self.parent.OnShowAttributeTable), 00208 )) 00209 00210 class LMNvizToolbar(BaseToolbar): 00211 """!Nviz toolbar 00212 """ 00213 def __init__(self, parent): 00214 self.lmgr = parent 00215 00216 BaseToolbar.__init__(self, parent) 00217 00218 # only one dialog can be open 00219 self.settingsDialog = None 00220 00221 self.InitToolbar(self._toolbarData()) 00222 00223 # realize the toolbar 00224 self.Realize() 00225 00226 def _toolbarData(self): 00227 """!Toolbar data""" 00228 icons = { 00229 'cmd' : MetaIcon(img = 'script-save', 00230 label = _('Generate command for m.nviz.image'), 00231 desc = _('Generate command for m.nviz.image based on current state')), 00232 'settings' : MetaIcon(img = '3d-settings', 00233 label = _('3D view mode settings'), 00234 desc = _('Show 3D view mode settings dialog')), 00235 'help' : MetaIcon(img = '3d-help', 00236 label = _('Show 3D view mode manual')), 00237 } 00238 00239 return self._getToolbarData((("nvizCmd", icons['cmd'], 00240 self.OnNvizCmd), 00241 (None, ), 00242 ("settings", icons["settings"], 00243 self.OnSettings), 00244 ("help", icons["help"], 00245 self.OnHelp)) 00246 ) 00247 00248 def OnNvizCmd(self, event): 00249 """!Show m.nviz.image command""" 00250 self.lmgr.GetLayerTree().GetMapDisplay().GetWindow().OnNvizCmd() 00251 00252 def OnHelp(self, event): 00253 """!Show 3D view mode help""" 00254 if not self.lmgr: 00255 RunCommand('g.manual', 00256 entry = 'wxGUI.Nviz') 00257 else: 00258 log = self.lmgr.GetLogWindow() 00259 log.RunCmd(['g.manual', 00260 'entry=wxGUI.Nviz']) 00261 00262 def OnSettings(self, event): 00263 """!Show nviz notebook page""" 00264 if not self.settingsDialog: 00265 self.settingsDialog = NvizPreferencesDialog(parent = self.parent) 00266 self.settingsDialog.Show()