Source code for fsleyes.actions.loadatlas

#
# loadatlas.py - The LoadAtlas action.
#
# Author: Paul McCarthy <pauldmccarthy@gmail.com>
#
"""This module provides the :class:`LoadAtlasAction`, an action which
allows the user to load an atlas specification into FSLeyes. See the
:mod:`fsl.data.atlases` module.
"""


import fsl.data.atlases             as atlases
import fsleyes_widgets.utils.status as status

import fsleyes.strings as strings
from . import             base


[docs]class LoadAtlasAction(base.Action): """The ``LoadAtlasAction`` prompts the user to select a FSL atlas specification file. This file is then passed to the :func:`.fsl.data.atlases.addAtlas` function, to add the atlas to the :class:`.AtlasRegistry`. """
[docs] def __init__(self, overlayList, displayCtx, frame): """Create a ``LoadAtlasAction``. :arg overlayList: The :class:`.OverlayList`. :arg displayCtx: The :class:`.DisplayContext`. :arg frame: The :class:`.FSLeyesFrame`. """ base.Action.__init__(self, overlayList, displayCtx, self.__loadAtlas) self.__frame = frame
def __loadAtlas(self): """Calls the :func:`loadAtlas` function. """ if len(atlases.listAtlases()) == 0: atlases.rescanAtlases() loadAtlas(self.__frame)
[docs]def loadAtlas(parent=None): """Prompts the user to select an atlas specification file, and then loads the atlas. """ import wx app = wx.GetApp() if parent is None: parent = app.GetTopWindow() msg = strings.titles[LoadAtlasAction, 'fileDialog'] dlg = wx.FileDialog(parent, message=msg, wildcard='XML atlas specification|*.xml', style=wx.FD_OPEN) if dlg.ShowModal() != wx.ID_OK: return path = dlg.GetPath() errtitle = strings.titles[ LoadAtlasAction, 'error'] errmsg = strings.messages[LoadAtlasAction, 'error'].format(path) with status.reportIfError(errtitle, errmsg): atlases.addAtlas(path)