/[papo]/gnue/forms/src/GFDisplayHandler.py
ViewVC logotype

Diff of /gnue/forms/src/GFDisplayHandler.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5.2.1 by styxman, Mon Jan 6 15:44:19 2003 UTC revision 1.5.2.2 by styxman, Wed May 14 00:01:38 2003 UTC
# Line 38  except ImportError: Line 38  except ImportError:
38    print """    print """
39     This GNUe tool requires mxDateTime to be installed     This GNUe tool requires mxDateTime to be installed
40    
41     You can find the mxDateTime at     You can find the mxDateTime at
42    
43     http://www.lemburg.com/files/python/mxDateTime.html     http://www.lemburg.com/files/python/mxDateTime.html
44    
# Line 64  class FieldDisplayHandler(GFEventAware): Line 64  class FieldDisplayHandler(GFEventAware):
64    
65    def setValue(self, value):    def setValue(self, value):
66      self.modified = 0      self.modified = 0
67        wasEditing= 0
68        if self.editing:
69          wasEditing= 1
70          dummyEvent= GFEvent ('nothing')
71          self.endEdit (dummyEvent)
72      self.value = value      self.value = value
73    #     print 'new value! %s [%s]' % (value, self.__class__)
74    #     from traceback import print_stack
75    #     import sys
76    #     print_stack (file=sys.stdout)
77    #     print '-------------'
78      self._buildDisplay()      self._buildDisplay()
79        if wasEditing:
80          self.beginEdit (dummyEvent)
81    
82    
83    def getValue(self):    def getValue(self):
# Line 102  class FieldDisplayHandler(GFEventAware): Line 114  class FieldDisplayHandler(GFEventAware):
114    #    #
115    # Editing methods    # Editing methods
116    #    #
117      
118    #    #
119    # beginEdit    # beginEdit
120    # called when a widget first gets focus    # called when a widget first gets focus
121    #    #
122    def beginEdit(self, event):    def beginEdit(self, event):
     self.editing = 1  
     self.modified = 0  
123    
124      # TODO: Replace with formatter      # TODO: Replace with formatter
125      self.setValue(self.entry.getValue())      self.setValue(self.entry.getValue())
# Line 117  class FieldDisplayHandler(GFEventAware): Line 127  class FieldDisplayHandler(GFEventAware):
127      self._buildDisplay()      self._buildDisplay()
128    
129      self.cursor = len(self.display)      self.cursor = len(self.display)
130        self.editing = 1
131        self.modified = 0
132    
133    #    #
134    # endEdit    # endEdit
# Line 151  class FieldDisplayHandler(GFEventAware): Line 163  class FieldDisplayHandler(GFEventAware):
163            event.__errortext__ = _("Invalid value '%s' for field") % self.value            event.__errortext__ = _("Invalid value '%s' for field") % self.value
164            return            return
165    
         self.editing = 0  
166          event.__results__ = self.value          event.__results__ = self.value
167          event.modified = self.modified          event.modified = self.modified
168          self.entry.setValue(self.value)          self.entry.setValue(self.value)
# Line 163  class FieldDisplayHandler(GFEventAware): Line 174  class FieldDisplayHandler(GFEventAware):
174          event.__errortext__ = _("The entered value\n ") \          event.__errortext__ = _("The entered value\n ") \
175                              + " '%s'\n" % self.work \                              + " '%s'\n" % self.work \
176                              + _("is not a valid entry.")                              + _("is not a valid entry.")
177        # must end the editing mode in any case, unless it failed
178        self.editing = 0
179    
180    
181    def addText(self, event):    def addText(self, event):
# Line 171  class FieldDisplayHandler(GFEventAware): Line 184  class FieldDisplayHandler(GFEventAware):
184    
185      if (self.entry.readonly and not self.entry._block.mode=='query'):      if (self.entry.readonly and not self.entry._block.mode=='query'):
186        event.__error__ = 1        event.__error__ = 1
187        event.__errortext__ = _("Cannot modify field.  Form is read only")        event.__errortext__ = _("Cannot modify field. Form is read only")
188        return        return
189      elif self.entry.editOnNull and \      elif self.entry.editOnNull and \
190           self.value != None and \           self.value != None and \
# Line 222  class FieldDisplayHandler(GFEventAware): Line 235  class FieldDisplayHandler(GFEventAware):
235    
236      else:      else:
237        # Otherwise just graft the new text in place        # Otherwise just graft the new text in place
238          
239        self.work = self.work[:self.cursor] \        self.work = self.work[:self.cursor] \
240                     + value                \                     + value                \
241                     + self.work[self.cursor:]                     + self.work[self.cursor:]
242    
243        self.cursor += len(event.text)        self.cursor += len(event.text)
244    
245        
246      event.__dropped__ = 1      event.__dropped__ = 1
247      self.modified = 1      self.modified = 1
248      self._buildDisplay()      self._buildDisplay()
# Line 250  class FieldDisplayHandler(GFEventAware): Line 263  class FieldDisplayHandler(GFEventAware):
263      if self.cursor != precurs:      if self.cursor != precurs:
264        event.overstrike = 1        event.overstrike = 1
265        event.text = ""        event.text = ""
266          
267        self.addText(event)        self.addText(event)
268    
269    # Delete forward one character    # Delete forward one character
270    def delete(self, event):    def delete(self, event):
271      event.overstrike = 1      event.overstrike = 1
272      event.text = ""      event.text = ""
273        
274      self.addText(event)      self.addText(event)
275    
276    
# Line 460  class FieldDisplayHandler(GFEventAware): Line 473  class FieldDisplayHandler(GFEventAware):
473        return "%s" % value        return "%s" % value
474    
475    def _buildDisplay(self):    def _buildDisplay(self):
476    #     print "w: %s, v: %s, d: %s, e: %s" % (self.work, self.value, self.display, self.editing)
477    #     from traceback import print_stack
478    #     import sys
479    #     print_stack (file=sys.stdout)
480      if self.editing:      if self.editing:
481        self.display = self._buildDisplayHelper(self.work, 1)        self.display = self._buildDisplayHelper(self.work, 1)
482      else:      else:
483        self.display = self._buildDisplayHelper(self.value, 0)        self.display = self._buildDisplayHelper(self.value, 0)
484          self.work= str (self.value)
485    #     print "w: %s, v: %s, d: %s" % (self.work, self.value, self.display)
486    #     print '-------------'
487    
488    
489    
# Line 521  class NumberDisplayHandler(FieldDisplayH Line 541  class NumberDisplayHandler(FieldDisplayH
541      # hack      # hack
542      if self.displayMask:      if self.displayMask:
543        try:        try:
544          return displayMask % value          return self.displayMask % value
545        except:        except:
546          pass          pass
547    
# Line 589  class DateDisplayHandler(FieldDisplayHan Line 609  class DateDisplayHandler(FieldDisplayHan
609    # TODO: Replace with format mask    # TODO: Replace with format mask
610    def _buildDisplayHelper(self, value, editing):    def _buildDisplayHelper(self, value, editing):
611      format = "%d/%m/%Y"      format = "%d/%m/%Y"
612        
613      if value in (None,""):      if value in (None,""):
614        return ""        return ""
615      try:      try:
# Line 652  class DropdownDisplayHandler(FieldDispla Line 672  class DropdownDisplayHandler(FieldDispla
672        self.entry.allowedValues()        self.entry.allowedValues()
673        self._loadedAllowedValues = 1        self._loadedAllowedValues = 1
674    
     self.editing = 1  
     self.modified = 0  
   
675      # TODO: Replace with formatter      # TODO: Replace with formatter
676      self.setValue(self.entry.getValue())      self.setValue(self.entry.getValue())
677    
# Line 671  class DropdownDisplayHandler(FieldDispla Line 688  class DropdownDisplayHandler(FieldDispla
688      self._buildDisplay()      self._buildDisplay()
689    
690      self.cursor = len(self.display)      self.cursor = len(self.display)
691        self.editing = 1
692        self.modified = 0
693    
694    
695    
696    # TODO: Replace with format mask    # TODO: Replace with format mask
# Line 723  class DropdownDisplayHandler(FieldDispla Line 743  class DropdownDisplayHandler(FieldDispla
743  #  #
744  class TextLookupDisplayHandler(FieldDisplayHandler):  class TextLookupDisplayHandler(FieldDisplayHandler):
745    
746    def __init__(self, *args, **params):    # def __init__(self, *args, **params):
747      FieldDisplayHandler.__init__(self, *args, **params)      # FieldDisplayHandler.__init__(self, *args, **params)
748      def __init__(self, entry, eventHandler, displayMask, inputMask= None):
749        FieldDisplayHandler.__init__(self, entry, eventHandler, None)
750        self.displayMask= entry._displaymask
751    
752    def beginEdit(self, event):    def beginEdit(self, event):
753      pass      pass
754    
755    # TODO: Replace with format mask    # TODO: Replace with format mask
756    def _buildDisplayHelper(self, value, editing):    def _buildDisplayHelper(self, value, editing):
757        # print "hack! %s" % self.entry.name
758      if value in (None,""):      if value in (None,""):
759        return ""        return ""
760      descr = ""      descr = ""
# Line 741  class TextLookupDisplayHandler(FieldDisp Line 765  class TextLookupDisplayHandler(FieldDisp
765            tmpFieldName = foreignKeyContent[1]+'.'+foreignKeyContent[2]            tmpFieldName = foreignKeyContent[1]+'.'+foreignKeyContent[2]
766          else:          else:
767            tmpFieldName = foreignKeyContent[1]            tmpFieldName = foreignKeyContent[1]
768          
769        lResultSet = self.entry.datasource.createResultSet({tmpFieldName:value})        lResultSet = self.entry.datasource.createResultSet({tmpFieldName:value})
770      if (lResultSet.firstRecord()):      if (lResultSet.firstRecord()):
771        if hasattr(self.entry,'foreign_key_description'):        if hasattr(self.entry,'foreign_key_description'):
772          descr = "%s" % lResultSet.current.getField(self.entry.foreign_key_description)          descr = "%s" % lResultSet.current.getField(self.entry.foreign_key_description)
773    
774        # displaymask
775        # hack
776        if self.displayMask:
777          try:
778            descr= self.displayMask % descr
779            # print "hack[1]! %s: %s" % (self.entry.name, str(descr))
780          except:
781            pass
782    
783      return descr      return descr
784    
785    def _buildDisplay(self):    def _buildDisplay(self):

Legend:
Removed from v.1.5.2.1  
changed lines
  Added in v.1.5.2.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26