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-2015 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
  11. """
  12. import wx
  13. from core.utils import _
  14. from datacatalog.tree import DataCatalogTree
  15. class DataCatalogFrame(wx.Frame):
  16. """Frame for testing purposes only."""
  17. def __init__(self, parent, giface=None):
  18. wx.Frame.__init__(self, parent=parent,
  19. title=_('GRASS GIS Data Catalog (experimetal)'))
  20. self._giface = giface
  21. self.panel = wx.Panel(self)
  22. # tree
  23. self.tree = DataCatalogTree(parent=self.panel, giface=self._giface)
  24. self.tree.InitTreeItems()
  25. self.tree.ExpandCurrentLocation()
  26. # buttons
  27. self.btnClose = wx.Button(parent=self.panel, id=wx.ID_CLOSE)
  28. self.btnClose.SetToolTipString(_("Close GRASS GIS Data Catalog"))
  29. self.btnClose.SetDefault()
  30. # events
  31. self.btnClose.Bind(wx.EVT_BUTTON, self.OnCloseWindow)
  32. self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
  33. self._layout()
  34. def _layout(self):
  35. sizer = wx.BoxSizer(wx.VERTICAL)
  36. sizer.Add(self.tree, proportion=1, flag=wx.EXPAND)
  37. btnSizer = wx.BoxSizer(wx.HORIZONTAL)
  38. btnSizer.AddStretchSpacer()
  39. btnSizer.Add(self.btnClose)
  40. sizer.Add(item=btnSizer, proportion=0,
  41. flag=wx.ALL | wx.ALIGN_RIGHT | wx.EXPAND,
  42. border=5)
  43. self.panel.SetSizer(sizer)
  44. sizer.Fit(self.panel)
  45. self.SetMinSize((400, 500))
  46. def OnCloseWindow(self, event):
  47. """Cancel button pressed"""
  48. if not isinstance(event, wx.CloseEvent):
  49. self.Destroy()
  50. event.Skip()