frame.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. """
  2. @package datacatalog::frame
  3. @brief Data catalog frame class
  4. Classes:
  5. - datacatalog::DataCatalogFrame
  6. (C) 2014-2020 by Tereza Fiedlerova, and the GRASS Development Team
  7. This program is free software under the GNU General Public
  8. License (>=v2). Read the file COPYING that comes with GRASS
  9. for details.
  10. @author Tereza Fiedlerova (original author)
  11. @author Martin Landa <landa.martin gmail.com> (various improvements)
  12. @author Anna Petrasova (simplify)
  13. """
  14. import os
  15. import wx
  16. from core.globalvar import ICONDIR
  17. from datacatalog.catalog import DataCatalog
  18. from gui_core.wrap import Button
  19. class DataCatalogFrame(wx.Frame):
  20. """Frame for testing purposes only."""
  21. def __init__(self, parent, giface=None, title=_("Data Catalog")):
  22. wx.Frame.__init__(self, parent=parent, title=title)
  23. self.SetName("DataCatalog")
  24. self.SetIcon(wx.Icon(os.path.join(ICONDIR, "grass.ico"), wx.BITMAP_TYPE_ICO))
  25. self._giface = giface
  26. self.panel = wx.Panel(self)
  27. self.catalogpanel = DataCatalog(self.panel, giface=giface)
  28. # buttons
  29. self.btnClose = Button(parent=self.panel, id=wx.ID_CLOSE)
  30. self.btnClose.SetToolTip(_("Close GRASS GIS Data Catalog"))
  31. self.btnClose.SetDefault()
  32. # events
  33. self.btnClose.Bind(wx.EVT_BUTTON, lambda evt: self.Close())
  34. self._layout()
  35. self.catalogpanel.LoadItems()
  36. def _layout(self):
  37. sizer = wx.BoxSizer(wx.VERTICAL)
  38. sizer.Add(self.catalogpanel, proportion=1, flag=wx.EXPAND)
  39. btnSizer = wx.BoxSizer(wx.HORIZONTAL)
  40. btnSizer.AddStretchSpacer()
  41. btnSizer.Add(self.btnClose)
  42. sizer.Add(btnSizer, proportion=0, flag=wx.ALL | wx.EXPAND, border=5)
  43. self.panel.SetSizer(sizer)
  44. sizer.Fit(self.panel)
  45. self.SetMinSize((450, 500))