frame.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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(
  25. wx.Icon(
  26. os.path.join(
  27. ICONDIR,
  28. 'grass.ico'),
  29. wx.BITMAP_TYPE_ICO))
  30. self._giface = giface
  31. self.panel = wx.Panel(self)
  32. self.catalogpanel = DataCatalog(self.panel, giface=giface)
  33. # buttons
  34. self.btnClose = Button(parent=self.panel, id=wx.ID_CLOSE)
  35. self.btnClose.SetToolTip(_("Close GRASS GIS Data Catalog"))
  36. self.btnClose.SetDefault()
  37. # events
  38. self.btnClose.Bind(wx.EVT_BUTTON, lambda evt: self.Close())
  39. self._layout()
  40. self.catalogpanel.LoadItems()
  41. def _layout(self):
  42. sizer = wx.BoxSizer(wx.VERTICAL)
  43. sizer.Add(self.catalogpanel, proportion=1, flag=wx.EXPAND)
  44. btnSizer = wx.BoxSizer(wx.HORIZONTAL)
  45. btnSizer.AddStretchSpacer()
  46. btnSizer.Add(self.btnClose)
  47. sizer.Add(btnSizer, proportion=0,
  48. flag=wx.ALL | wx.EXPAND,
  49. border=5)
  50. self.panel.SetSizer(sizer)
  51. sizer.Fit(self.panel)
  52. self.SetMinSize((450, 500))