Changeset 4032
- Timestamp:
- 04/06/08 09:04:33 (8 months ago)
- Files:
-
- trunk/dabo/ui/uiwx/dGrid.py (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/dabo/ui/uiwx/dGrid.py
r3946 r4032 37 37 except ImportError: 38 38 _USE_DECIMAL = False 39 # This is needed so that references to this class don't throw 40 # errors when running in Python 2.3 41 Decimal = float 39 42 40 43 … … 43 46 def __init__(self, parent): 44 47 super(dGridDataTable, self).__init__() 45 46 48 self.grid = parent 47 49 self._initTable() … … 136 138 nm = "" 137 139 colName = "Column_%s" % nm 138 139 140 pos = col._getUserSetting("Order") 140 141 if pos is not None: … … 506 507 "decimal" : self.decimalRendererClass, 507 508 "float" : self.floatRendererClass, 508 "list" : self.listRendererClass } 509 "list" : self.listRendererClass, 510 str : self.stringRendererClass, 511 unicode : self.stringRendererClass, 512 bool : self.boolRendererClass, 513 int : self.intRendererClass, 514 long : self.longRendererClass, 515 float : self.floatRendererClass, 516 list : self.listRendererClass} 509 517 self.defaultEditors = { 510 518 "str" : self.stringEditorClass, … … 515 523 "decimal" : self.decimalEditorClass, 516 524 "float" : self.floatEditorClass, 517 "list" : self.listEditorClass } 525 "list" : self.listEditorClass, 526 str : self.stringEditorClass, 527 unicode : self.stringEditorClass, 528 bool : self.boolEditorClass, 529 int : self.intEditorClass, 530 long : self.longEditorClass, 531 float : self.floatEditorClass, 532 list : self.listEditorClass} 533 if _USE_DECIMAL: 534 self.defaultRenderers[Decimal] = self.decimalRendererClass 535 self.defaultEditors[Decimal] = self.decimalEditorClass 518 536 519 537 # Default to string renderer … … 687 705 688 706 707 def _setDataTypeFromDataField(self, fld): 708 """When a column has its DataField changed, we need to set the 709 correct DataType based on the new value. 710 """ 711 if self.Parent: 712 currDT = self.DataType 713 dt = self.Parent.typeFromDataField(fld) 714 if dt is not None and (dt != currDT): 715 self.DataType = dt 716 self._updateRenderer() 717 self._updateEditor() 718 719 689 720 def _getUserSetting(self, prop): 690 721 """Get the property value from the user settings table.""" … … 942 973 if self._constructed(): 943 974 self._dataField = val 975 # Use a callAfter, since the parent may not be finished instantiating yet. 976 dabo.ui.callAfter(self._setDataTypeFromDataField, val) 944 977 if not self.Name or self.Name == "?": 945 978 self._name = _("col_%s") % val … … 1882 1915 #self.SetCellRenderer(row, col, rnd) 1883 1916 1917 1918 def typeFromDataField(self, df): 1919 """When the DataField is set for a column, it needs to set the corresponding 1920 value of its DataType property. Will return the Python data type, or None if 1921 there is no bizobj, or no DataStructure info available in the bizobj. 1922 """ 1923 biz = self.getBizobj() 1924 if biz is None: 1925 return None 1926 try: 1927 pyType = biz.getDataTypeForField(df) 1928 except ValueError, e: 1929 dabo.errorLog.write(e) 1930 return None 1931 return pyType 1932 1884 1933 1885 1934 def getTableClass(cls):
