[z3-checkins] r14843 - z3/zopejam/trunk/src/zopejam
hathawsh at codespeak.net
hathawsh at codespeak.net
Thu Jul 21 03:44:52 CEST 2005
Author: hathawsh
Date: Thu Jul 21 03:44:50 2005
New Revision: 14843
Modified:
z3/zopejam/trunk/src/zopejam/propbook.py
Log:
Show a grid tab
Modified: z3/zopejam/trunk/src/zopejam/propbook.py
==============================================================================
--- z3/zopejam/trunk/src/zopejam/propbook.py (original)
+++ z3/zopejam/trunk/src/zopejam/propbook.py Thu Jul 21 03:44:50 2005
@@ -7,6 +7,7 @@
import wx
import wx.grid
+from wx import xrc
from zopejam import columns
@@ -23,27 +24,58 @@
sizer = wx.BoxSizer(wx.VERTICAL)
self.props_page.SetSizer(sizer)
self.notebook.AddPage(self.props_page, "Properties")
+
+ self.grid_page = wx.Panel(self.notebook)
+ sizer = wx.BoxSizer(wx.VERTICAL)
+ self.grid_page.SetSizer(sizer)
+ self.notebook.AddPage(self.grid_page, "Grid")
+ self.grid_table = PropertyGridTable()
+
self.source_page = wx.Panel(self.notebook)
self.notebook.AddPage(self.source_page, "Source")
def onSelect(self, directives):
- self.props_page.DestroyChildren()
- sizer = self.props_page.GetSizer()
- if not directives:
- return
- if len(directives) > 1:
- grid = wx.grid.Grid(self.props_page, -1)
- sizer = self.props_page.GetSizer()
- sizer.Add(grid, proportion=1, flag=wx.EXPAND)
- grid.SetTable(PropertyTable(directives))
- self.props_page.Layout()
- # else show a friendly property editor with documentation
+ self.grid_page.DestroyChildren()
+ sizer = self.grid_page.GetSizer()
+ if directives:
+ # Display the grid
+ self.grid_table.populate(directives)
+ self.grid = wx.grid.Grid(self.grid_page, -1)
+ self.grid.SetTable(self.grid_table)
+ if len(directives) < 50:
+ self.grid.AutoSizeColumns(setAsMin=False)
+ # else resizing would take a while.
+ sizer.Add(self.grid, proportion=1, flag=wx.EXPAND)
+ else:
+ label = wx.StaticText(
+ self.grid_page, -1, "No directives selected.")
+ sizer.Add(label, flag=wx.EXPAND|wx.ALL, border=4)
+ self.grid_page.Layout()
+
-class PropertyTable(wx.grid.PyGridTableBase):
+class PropertyGridTable(wx.grid.PyGridTableBase):
- def __init__(self, directives):
+ def __init__(self):
wx.grid.PyGridTableBase.__init__(self)
+ self.populate([])
+
+ # prepare self.cell_attrs
+ self.cell_attrs = {} # {(valid, editable, has_error): GridCellAttr}
+ for valid in (False, True):
+ for editable in (False, True):
+ for has_error in (False, True):
+ gca = wx.grid.GridCellAttr()
+ if not valid:
+ gca.SetBackgroundColour(wx.Colour(224, 224, 224))
+ elif has_error:
+ gca.SetBackgroundColour(wx.Colour(255, 127, 127))
+ elif not editable:
+ gca.SetBackgroundColour(wx.Colour(224, 224, 224))
+ gca.SetReadOnly(not valid or not editable)
+ self.cell_attrs[(valid, editable, has_error)] = gca
+
+ def populate(self, directives):
self.directives = directives
ifaces = {} # { name -> InterfaceInfo }
for d in directives:
@@ -65,19 +97,6 @@
for name in names:
self.columns.append(columns.SchemaAttribute(name))
- # prepare self.cell_attrs
- self.cell_attrs = {} # {(valid, editable, has_error): GridCellAttr}
- for valid in (False, True):
- for editable in (False, True):
- for has_error in (False, True):
- gca = wx.grid.GridCellAttr()
- if not valid:
- gca.SetBackgroundColour(wx.Colour(127, 127, 127))
- elif has_error:
- gca.SetBackgroundColour(wx.Colour(255, 127, 127))
- gca.SetReadOnly(not valid or not editable)
- self.cell_attrs[(valid, editable, has_error)] = gca
-
def GetNumberCols(self):
return len(self.columns)
More information about the z3-checkins
mailing list