frame.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. """
  2. @package datacatalog::frame
  3. @brief Data catalog frame class
  4. Classes:
  5. - datacatalog::DataCatalogTree
  6. - datacatalog::DataCatalogFrame
  7. (C) 2014-2015 by Tereza Fiedlerova, and the GRASS Development Team
  8. This program is free software under the GNU General Public
  9. License (>=v2). Read the file COPYING that comes with GRASS
  10. for details.
  11. @author Tereza Fiedlerova
  12. """
  13. import wx
  14. from grass.script import core as gcore
  15. from core.utils import _
  16. from datacatalog.tree import DataCatalogTree
  17. class DataCatalogFrame(wx.Frame):
  18. """Frame for testing purposes only."""
  19. def __init__(self, parent, giface=None):
  20. wx.Frame.__init__(self, parent=parent,
  21. title=_('GRASS GIS Data Catalog (experimetal)'))
  22. self._giface = giface
  23. self.panel = wx.Panel(self)
  24. # tree
  25. self.tree = DataCatalogTree(parent=self.panel, giface=self._giface)
  26. self.tree.InitTreeItems()
  27. # buttons
  28. self.btnClose = wx.Button(parent=self.panel, id=wx.ID_CLOSE)
  29. self.btnClose.SetToolTipString(_("Close GRASS GIS Data Catalog"))
  30. self.btnClose.SetDefault()
  31. # events
  32. self.btnClose.Bind(wx.EVT_BUTTON, self.OnCloseWindow)
  33. self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
  34. self._layout()
  35. def _layout(self):
  36. sizer = wx.BoxSizer(wx.VERTICAL)
  37. sizer.Add(self.tree, proportion=1, flag=wx.EXPAND)
  38. btnSizer = wx.BoxSizer(wx.HORIZONTAL)
  39. btnSizer.Add(self.btnClose)
  40. sizer.Add(item = btnSizer, proportion = 0,
  41. flag = wx.ALL | wx.ALIGN_RIGHT,
  42. border = 5)
  43. self.panel.SetSizerAndFit(sizer)
  44. sizer.SetSizeHints(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()