Exemplo n.º 1
0
class DataCatalogToolbar(BaseToolbar):
    """Main data catalog toolbar
    """
    def __init__(self, parent):
        """Main toolbar constructor
        """

        BaseToolbar.__init__(self, parent)

        self.InitToolbar(self._toolbarData())
        self.filter = TextCtrl(parent=self)
        self.filter.SetSize((120, self.filter.GetBestSize()[1]))
        self.filter.Bind(
            wx.EVT_TEXT,
            lambda event: self.parent.Filter(self.filter.GetValue()))
        self.AddControl(StaticText(self, label=_("Search:")))
        self.AddControl(self.filter)
        help = _(
            "Type to search database by map type or name. "
            "Use prefix 'r:', 'v:' and 'r3:'"
            "to show only raster, vector or 3D raster data, respectively. "
            "Use Python regular expressions to refine your search.")
        self.SetToolShortHelp(self.filter.GetId(), help)
        # realize the toolbar
        self.Realize()

    def _toolbarData(self):
        """Returns toolbar data (name, icon, handler)"""
        # BaseIcons are a set of often used icons. It is possible
        # to reuse icons in ./trunk/gui/icons/grass or add new ones there.
        return self._getToolbarData(
            (("reloadTree", icons["reloadTree"], self.parent.OnReloadTree),
             ("reloadMapset", icons["reloadMapset"],
              self.parent.OnReloadCurrentMapset),
             ("lock", icons['locked'], self.OnSetRestriction, wx.ITEM_CHECK),
             ("addGrassDB", icons['addGrassDB'],
              self.parent.OnAddGrassDB), ("addLocation", icons['addLocation'],
                                          self.parent.OnCreateLocation),
             ("downloadLocation", icons['downloadLocation'],
              self.parent.OnDownloadLocation),
             ("addMapset", icons['addMapset'], self.parent.OnCreateMapset)))

    def OnSetRestriction(self, event):
        if self.GetToolState(self.lock):
            self.SetToolNormalBitmap(self.lock, icons['unlocked'].GetBitmap())
            self.SetToolShortHelp(self.lock, icons['unlocked'].GetLabel())
            self.parent.SetRestriction(restrict=False)
        else:
            self.SetToolNormalBitmap(self.lock, icons['locked'].GetBitmap())
            self.SetToolShortHelp(self.lock, icons['locked'].GetLabel())
            self.parent.SetRestriction(restrict=True)