[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue/forms/src GFDisplayHandler.py GFObjects/GF...
From: |
Jason Cater |
Subject: |
gnue/forms/src GFDisplayHandler.py GFObjects/GF... |
Date: |
Mon, 18 Feb 2002 00:11:38 -0500 |
CVSROOT: /home/cvs
Module name: gnue
Changes by: Jason Cater <address@hidden> 02/02/18 00:11:38
Modified files:
forms/src : GFDisplayHandler.py
forms/src/GFObjects: GFEntry.py
forms/src/uidrivers/wx: UIdriver.py
Log message:
fixes/enhancements to dropdown fields
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/forms/src/GFDisplayHandler.py.diff?cvsroot=OldCVS&tr1=1.7&tr2=1.8&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/forms/src/GFObjects/GFEntry.py.diff?cvsroot=OldCVS&tr1=1.46&tr2=1.47&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/forms/src/uidrivers/wx/UIdriver.py.diff?cvsroot=OldCVS&tr1=1.146&tr2=1.147&r1=text&r2=text
Patches:
Index: gnue/forms/src/GFDisplayHandler.py
diff -c gnue/forms/src/GFDisplayHandler.py:1.7
gnue/forms/src/GFDisplayHandler.py:1.8
*** gnue/forms/src/GFDisplayHandler.py:1.7 Sun Feb 17 13:25:32 2002
--- gnue/forms/src/GFDisplayHandler.py Mon Feb 18 00:11:37 2002
***************
*** 217,231 ****
self.addText(event)
- # Used by combo boxes
- # TODO: Should be re-examined
- def replaceText(self, event):
- self.value = event.data[1]
- self.modified = 1
-
- self._buildDisplay()
-
-
#####################
#
--- 217,222 ----
***************
*** 394,400 ****
# "Entry" events
'requestKEYPRESS' : self.addText,
- 'requestREPLACEVALUE' : self.replaceText,
'requestCURSORLEFT' : self.moveCursorLeft,
'requestCURSORRIGHT' : self.moveCursorRight,
'requestCURSOREND' : self.moveCursorToEnd,
--- 385,390 ----
***************
*** 511,517 ****
# Handler for dropdowns
#
class DropdownDisplayHandler(FieldDisplayHandler):
! pass
--- 501,590 ----
# Handler for dropdowns
#
class DropdownDisplayHandler(FieldDisplayHandler):
!
! def __init__(self, *args, **params):
!
! FieldDisplayHandler.__init__(self, *args, **params)
!
! # My events...
! self.subevents.registerEventListeners( {
! 'requestREPLACEVALUE' : self.replaceText } )
!
!
! def beginEdit(self, event):
!
! if not hasattr(self.entry,'_allowedValues'):
! self.entry.allowedValues()
!
! print "beginEdit.. %s" % self.display
! self.editing = 1
! self.modified = 0
!
! # TODO: Replace with formatter
! self.setValue(self.entry.getValue())
!
! if self.value == None:
! self.work = ""
! else:
! try:
! self.work = self.entry._allowedValues[self.value]
! except KeyError:
! self.work = ""
! event.__error__ = 1
! event.__errortext__ = "Invalid value '%s' for keyed pull-down field"
% self.value
!
! self._buildDisplay()
!
! self.cursor = len(self.display)
!
!
! # TODO: Replace with format mask
! def _buildDisplayHelper(self, value, editing):
! print "building display for '%s'" % value
! self._dropdownIndex = 0
! if value in (None,""):
! return ""
!
! if editing:
! i = 0
! val = string.lower(value)
! for disp in self.entry._allowedValuesDescr:
! if disp[:len(val)] == val:
! display =
self.entry._allowedValues[self.entry._allowedValuesReverse[disp]]
! # self.selection1 = len(val)
! # self.selection2 = len(display)
! self._dropdownIndex = i
! return display
!
! return value
! else:
! return self.entry._allowedValues[value]
!
! def _buildDisplay(self):
! if self.editing:
! self.display = self._buildDisplayHelper(self.work, 1)
! if self.cursor > len(self.work):
! self.work = self.display
! else:
! self.display = self._buildDisplayHelper(self.value, 0)
!
!
! def replaceText(self, event):
! self.work = event.text
! self.modified = 1
!
! self._buildDisplay()
!
!
! def _buildValue(self):
! if self.work == "":
! self.value = None
! else:
! try:
! self.value =
self.entry._allowedValuesReverse[string.lower(self.display)]
! except KeyError:
! return 0
! return 1
Index: gnue/forms/src/GFObjects/GFEntry.py
diff -c gnue/forms/src/GFObjects/GFEntry.py:1.46
gnue/forms/src/GFObjects/GFEntry.py:1.47
*** gnue/forms/src/GFObjects/GFEntry.py:1.46 Sun Feb 17 13:25:32 2002
--- gnue/forms/src/GFObjects/GFEntry.py Mon Feb 18 00:11:37 2002
***************
*** 320,336 ****
rs = self.datasource.createResultSet()
more = rs.firstRecord()
self._allowedValues = {"":""}
! while more:
try:
if hasattr(self,'foreign_key_description'):
! self._allowedValues["%s" % rs.current.getField(self.fieldName)] =
"%s" % \
! rs.current.getField(self.foreign_key_description)
else:
# No descriptions defined
self._allowedValues["%s" % rs.current.getField(self.fieldName)] =
""
except AttributeError:
self._allowedValues[rs.current.getField(self.fieldName)] = None
more = rs.nextRecord()
GDebug.printMesg (5,'Created for DropDown: %s' % self._allowedValues)
return self._allowedValues
--- 320,343 ----
rs = self.datasource.createResultSet()
more = rs.firstRecord()
self._allowedValues = {"":""}
! self._allowedValuesDescr = [""]
! self._allowedValuesReverse = {"":""}
! while more:
try:
if hasattr(self,'foreign_key_description'):
! key = "%s" % rs.current.getField(self.fieldName)
! descr = "%s" % rs.current.getField(self.foreign_key_description)
!
! self._allowedValues[key] = descr
! self._allowedValuesDescr.append(string.lower(descr))
! self._allowedValuesReverse[string.lower(descr)] = key
else:
# No descriptions defined
self._allowedValues["%s" % rs.current.getField(self.fieldName)] =
""
except AttributeError:
self._allowedValues[rs.current.getField(self.fieldName)] = None
more = rs.nextRecord()
+ self._allowedValuesDescr.sort()
GDebug.printMesg (5,'Created for DropDown: %s' % self._allowedValues)
return self._allowedValues
Index: gnue/forms/src/uidrivers/wx/UIdriver.py
diff -c gnue/forms/src/uidrivers/wx/UIdriver.py:1.146
gnue/forms/src/uidrivers/wx/UIdriver.py:1.147
*** gnue/forms/src/uidrivers/wx/UIdriver.py:1.146 Sun Feb 17 19:20:11 2002
--- gnue/forms/src/uidrivers/wx/UIdriver.py Mon Feb 18 00:11:38 2002
***************
*** 565,572 ****
def setSelectedArea(self, selection1, selection2, index=0):
try:
self.widgets[index].SetSelection(selection1, selection2)
! except AttributeError:
! pass # For label-style entries
def _addToCrossRef(self, widget,gfobject, uiobject):
id = widget.GetId()
--- 565,572 ----
def setSelectedArea(self, selection1, selection2, index=0):
try:
self.widgets[index].SetSelection(selection1, selection2)
! except (AttributeError, TypeError):
! pass # For label-style & dropdown entries
def _addToCrossRef(self, widget,gfobject, uiobject):
id = widget.GetId()
***************
*** 707,719 ****
else:
choices = [""]
newWidget = wxComboBox(container, -1, "",defaultPoint,
wxSize(object.width*int(textWidth),object.height*int(textHeight)),
choices, wxCB_DROPDOWN,) # |wxWANTS_CHARS,)
newWidget.SetValue("")
EVT_COMBOBOX(newWidget, newWidget.GetId(), self.comboHandler)
!
!
elif style == 'label':
newWidget = wxStaticText(container, -1, "",defaultPoint,defaultSize,
wxST_NO_AUTORESIZE)
--- 707,721 ----
else:
choices = [""]
+ choices.sort()
+
newWidget = wxComboBox(container, -1, "",defaultPoint,
wxSize(object.width*int(textWidth),object.height*int(textHeight)),
choices, wxCB_DROPDOWN,) # |wxWANTS_CHARS,)
newWidget.SetValue("")
EVT_COMBOBOX(newWidget, newWidget.GetId(), self.comboHandler)
!
!
elif style == 'label':
newWidget = wxStaticText(container, -1, "",defaultPoint,defaultSize,
wxST_NO_AUTORESIZE)
***************
*** 729,735 ****
else: # Normal text box
if initialize:
! styles = wxTE_PROCESS_TAB
if object.height > 1:
styles = styles|wxTE_MULTILINE
value = object.getValue()
--- 731,737 ----
else: # Normal text box
if initialize:
! styles = wxTE_PROCESS_TAB
if object.height > 1:
styles = styles|wxTE_MULTILINE
value = object.getValue()
***************
*** 747,759 ****
if event.GetEventType() == wxEVT_COMMAND_COMBOBOX_SELECTED:
object = _eventObjTowxWindow(event)
id = object.GetId()
!
selection = event.GetSelection()
!
gfObject = _IdToGFObj[id]
eventdata = [gfObject, event.GetString()]
! action = GFEvent('requestREPLACEVALUE',eventdata)
! _EVENTPROCESSOR(action)
def checkboxHandler(self,event):
if event.GetEventType() == wxEVT_COMMAND_CHECKBOX_CLICKED:
--- 749,762 ----
if event.GetEventType() == wxEVT_COMMAND_COMBOBOX_SELECTED:
object = _eventObjTowxWindow(event)
id = object.GetId()
!
selection = event.GetSelection()
!
gfObject = _IdToGFObj[id]
eventdata = [gfObject, event.GetString()]
! action = GFEvent('requestREPLACEVALUE',object=gfObject,
! index=selection, text=event.GetString())
! _EVENTPROCESSOR(action)
def checkboxHandler(self,event):
if event.GetEventType() == wxEVT_COMMAND_CHECKBOX_CLICKED:
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue/forms/src GFDisplayHandler.py GFObjects/GF...,
Jason Cater <=