dabo Commit Revision 2504 Date: 2006-11-30 15:41:37 -0800 (Thu, 30 Nov 2006) Author: paul
Changed: U branches/stable/dabo/dColors.py U branches/stable/dabo/ui/uiwx/dGrid.py
Log: Backported the trunk commits that result in a fixed incremental search for dGrid. The commands issued to achieve this were:
svn merge -r 2490:2491 trunk branches/stable svn merge -r 2495:2498 trunk branches/stable
Diff: Modified: branches/stable/dabo/dColors.py =================================================================== --- branches/stable/dabo/dColors.py 2006-11-30 15:10:16 UTC (rev 2503) +++ branches/stable/dabo/dColors.py 2006-11-30 23:41:37 UTC (rev 2504) @@ -151,7 +151,9 @@ "yellowgreen" : (154, 205, 50) } +colors = colorDict.keys() + def hexToDec(hx): # Define a dict of char-value pairs hex = {"0": 0, "1": 1, "2": 2, "3": 3, "4": 4, "5": 5, "6": 6, "7": 7, "8": 8,
Modified: branches/stable/dabo/ui/uiwx/dGrid.py =================================================================== --- branches/stable/dabo/ui/uiwx/dGrid.py 2006-11-30 15:10:16 UTC (rev 2503) +++ branches/stable/dabo/ui/uiwx/dGrid.py 2006-11-30 23:41:37 UTC (rev 2504) @@ -1614,7 +1614,8 @@ gridWindow.Bind(wx.EVT_RIGHT_UP, self.__onWxMouseRightUp) gridWindow.Bind(wx.EVT_CONTEXT_MENU, self.__onWxContextMenu) - self.bindEvent(dEvents.KeyDown, self._onKeyDown) +# self.bindEvent(dEvents.KeyDown, self._onKeyDown) + self.bindEvent(dEvents.KeyChar, self._onKeyChar) self.bindEvent(dEvents.GridRowSize, self._onGridRowSize) self.bindEvent(dEvents.GridCellSelected, self._onGridCellSelected) self.bindEvent(dEvents.GridColSize, self._onGridColSize) @@ -2472,8 +2473,8 @@ # there are more efficient search algorithms, but for this purpose, we\'ll # just use brute force for fldval, row in sortList: - if not isinstance(fldval, basestring): - fldval = str(fldval) +# if not isinstance(fldval, basestring): +# fldval = str(fldval) if not compString or caseSensitive: match = (fldval == srchStr) else: @@ -3007,13 +3008,13 @@ self.refresh() - def _onKeyDown(self, evt): + def _onKeyChar(self, evt): + #def _onKeyDown(self, evt): """ Occurs when the user presses a key inside the grid.""" if self.Editable and self.Columns[self.CurrentColumn].Editable: # Can\'t search and edit at the same time return -# keyCode = evt.EventData["keyCode"] keyCode = evt.EventData["unicodeKey"] try: char = unichr(keyCode) @@ -3021,11 +3022,13 @@ # keycode not in ascii range return - if char.isspace(): + if char.isspace() or keyCode in (dKeys.key_Left, dKeys.key_Right, + dKeys.key_Up, dKeys.key_Down, dKeys.key_Pageup, dKeys.key_Pagedown, + dKeys.key_Home, dKeys.key_End, dKeys.key_Prior, dKeys.key_Next) \\ + or evt.EventData["hasModifiers"]: + # Enter, Tab, Space and Arrow Keys shouldn\'t be searched on. return -# if (self.Searchable and self.Columns[self.CurrentColumn].Searchable) \\ -# and char.isalnum() and not evt.hasModifiers: if (self.Searchable and self.Columns[self.CurrentColumn].Searchable) \\ and char.isalnum(): self.addToSearchStr(char) @@ -4188,9 +4191,15 @@ class _dGrid_test(dGrid): def initProperties(self): - self.DataSet = [{"name" : "Ed Leafe", "age" : 48, "coder" : True, "color": "brown"}, - {"name" : "Mike Leafe", "age" : 19, "coder" : False, "color": "purple"}, - {"name" : "Dan Leafe", "age" : 14, "coder" : False, "color": "green"}] + self.DataSet = [ + {"name" : "Ed Leafe", "age" : 49, "coder" : True, "color": "cornsilk"}, + {"name" : "Paul McNett", "age" : 37, "coder" : True, "color": "wheat"}, + {"name" : "Ted Roche", "age" : 48, "coder" : True, "color": "goldenrod"}, + {"name" : "Derek Jeter", "age": 32 , "coder" : False, "color": "white"}, + {"name" : "Halle Berry", "age" : 38, "coder" : False, "color": "orange"}, + {"name" : "Steve Wozniak", "age" : 56, "coder" : True, "color": "yellow"}, + {"name" : "LeBron James", "age" : 22, "coder" : False, "color": "gold"}, + {"name" : "Madeline Albright", "age" : 69, "coder" : False, "color": "red"}] self.Width = 360 self.Height = 150 self.Editable = True @@ -4211,7 +4220,7 @@ col.HeaderFontBold = False col = dColumn(self, Name="Person", Order=20, DataField="name", - DataType="string", Width=200, Caption="Customer Name", + DataType="string", Width=200, Caption="Celebrity Name", Sortable=True, Searchable=True, Editable=True, Expand=True) self.addColumn(col) @@ -4222,21 +4231,21 @@ self.addColumn(Name="Age", Order=30, DataField="age", DataType="integer", Width=40, Caption="Age", - Sortable=True, Searchable=False, Editable=True) + Sortable=True, Searchable=True, Editable=True) col = dColumn(self, Name="Color", Order=40, DataField="color", DataType="string", Width=40, Caption="Favorite Color", - Sortable=True, Searchable=False, Editable=True, Expand=True) + Sortable=True, Searchable=True, Editable=True, Expand=True) self.addColumn(col) - col.ListEditorChoices = ["green", "brown", "purple"] + col.ListEditorChoices = dabo.dColors.colors col.CustomEditorClass = col.listEditorClass col.HeaderVerticalAlignment = "Bottom" col.HeaderHorizontalAlignment = "Right" col.HeaderForeColor = "brown" - self.RowLabels = ["a", "b", "c", "d"] + self.RowLabels = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"] #self.ShowRowLabels = True if __name__ == \'__main__\': @@ -4245,8 +4254,7 @@ self.BackColor = "khaki" g = self.grid = _dGrid_test(self, RegID="sampleGrid") self.Sizer.append(g, 1, "x", border=40, borderSides="all") - self.Sizer.appendSpacer(10) - + self.Sizer.appendSpacer(10) gsz = dabo.ui.dGridSizer(HGap=50) chk = dabo.ui.dCheckBox(self, Caption="Edit Table", RegID="geekEdit",
©2006 Paul McNett |
|