commit-gnue
[Top][All Lists]
Advanced

[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:



reply via email to

[Prev in Thread] Current Thread [Next in Thread]