commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnue gnue-common/src/FormatMasks/BaseMask.py gn...


From: Jason Cater
Subject: gnue gnue-common/src/FormatMasks/BaseMask.py gn...
Date: Wed, 10 Oct 2001 19:24:51 -0400

CVSROOT:        /home/cvs
Module name:    gnue
Changes by:     Jason Cater <address@hidden>    01/10/10 19:24:51

Modified files:
        gnue-common/src/FormatMasks: BaseMask.py DateMask.py __init__.py 
        gnuef/src      : GFForm.py GFParser.py 
        gnuef/src/GFObjects: GFEntry.py 
Added files:
        gnue-common/src/FormatMasks: NumberMask.py TextMask.py 

Log message:
        synching machines (may break cvs)

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-common/src/FormatMasks/NumberMask.py?cvsroot=OldCVS&rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-common/src/FormatMasks/TextMask.py?cvsroot=OldCVS&rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-common/src/FormatMasks/BaseMask.py.diff?cvsroot=OldCVS&tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-common/src/FormatMasks/DateMask.py.diff?cvsroot=OldCVS&tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-common/src/FormatMasks/__init__.py.diff?cvsroot=OldCVS&tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/src/GFForm.py.diff?cvsroot=OldCVS&tr1=1.122&tr2=1.123&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/src/GFParser.py.diff?cvsroot=OldCVS&tr1=1.56&tr2=1.57&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/src/GFObjects/GFEntry.py.diff?cvsroot=OldCVS&tr1=1.21&tr2=1.22&r1=text&r2=text

Patches:
Index: gnue/gnue-common/src/FormatMasks/BaseMask.py
diff -u gnue/gnue-common/src/FormatMasks/BaseMask.py:1.2 
gnue/gnue-common/src/FormatMasks/BaseMask.py:1.3
--- gnue/gnue-common/src/FormatMasks/BaseMask.py:1.2    Mon Jul 16 16:03:07 2001
+++ gnue/gnue-common/src/FormatMasks/BaseMask.py        Wed Oct 10 19:24:50 2001
@@ -46,15 +46,18 @@
   maskMappings = {}
   inputHandlers = []
   outputHandlers = []
+  output2Handlers = []
   predefinedLiterals = ""
   basetype = "base"
   defaultmask = ""
   literalClass = Literal
 
-  def __init__(self, outputMask, inputMask=None):
+  def __init__(self, outputMask, inputMask=None, outputMask2=None):
     self.outputHandlers  = self.parseMask(outputMask)
     if inputMask != None: 
       self.inputHandlers = self.parseMask(inputMask)
+    if outputMask2 != None: 
+      self.output2Handlers = self.parseMask(outputMask2)
 
 
   # Take a mask string and break it into its elements and map it to handlers
@@ -90,7 +93,8 @@
 
     return maskHandler
 
-  def getFormattedOutput(self): 
+  # If secondary is true, then use secondary mask (outputMask2)
+  def getFormattedOutput(self, secondary=0): 
     pass
 
   def getFormattedInput(self): 
Index: gnue/gnue-common/src/FormatMasks/DateMask.py
diff -u gnue/gnue-common/src/FormatMasks/DateMask.py:1.4 
gnue/gnue-common/src/FormatMasks/DateMask.py:1.5
--- gnue/gnue-common/src/FormatMasks/DateMask.py:1.4    Mon Jul 16 23:00:08 2001
+++ gnue/gnue-common/src/FormatMasks/DateMask.py        Wed Oct 10 19:24:50 2001
@@ -80,7 +80,7 @@
     return value == self.literal or value in predefinedDateLiterals
 
 class DateMask (BaseMask):
-  def __init__(self, outputMask, inputMask=None): 
+  def __init__(self, outputMask, inputMask=None, outputMask2=None): 
 
     self.predefinedLiterals = predefinedDateLiterals
 
@@ -108,7 +108,7 @@
       'x': _xSection,       'X': _XSection, 
       'y': _ySection,       'Y': _YSection }
 
-    BaseMask.__init__(self, outputMask, inputMask)
+    BaseMask.__init__(self, outputMask, inputMask, outputMask2)
 
     self.value = GDateTime()
     self.entry = ""
@@ -119,17 +119,17 @@
       self.inputMaskLen.append(0)
 
 
-  def processEdit (self, str, pos=0, replaces=0): 
-    nv = self.entry
+  def processEdit (self, value, str, pos=0, replaces=0): 
+    nv = value
     if pos == len(nv): 
-      nv = nv + str
+      nv += str
     else: 
       nv = "%s%s%s" % (nv[:pos],str,nv[pos+replaces:])
 
     section = 0 
     while section < len(self.inputMaskPos) and \
           self.inputMaskPos[section] < pos:
-      section = section + 1
+      section += 1
 
     i = pos
     while i < len(nv):
@@ -138,55 +138,58 @@
         if i == self.inputMaskPos[section] and \
            not isinstance(self.inputHandlers[section],Literal): 
           self.inputMaskLen[section] = i - self.inputMaskPos[section]
-          return 1
+          return nv
         else: 
           self.inputMaskLen[section] = i - self.inputMaskPos[section]
           if section == len(self.inputHandlers) - 1: 
             if i != len(nv)-1:
-              return 1
+              return nv
           else: 
-            section = section + 1
+            section += 1
             self.inputMaskPos[section] = i
             self.inputMaskLen[section] = 0
       else: 
-        i = i + 1
+        i += 1
 
     self.inputMaskLen[section] = i - self.inputMaskPos[section]
 
     for i in range(section+1, len(self.inputHandlers)): 
       self.inputMaskLen[i] = 0
       
-     
-    self.entry = nv
-    return 1
 
+    return nv
 
-  def getFormattedOutput(self): 
+
+  def getFormattedOutput(self, secondary=0): 
     rv = ""
     value = self._buildDate(self.entry, 1)
+    if secondary: 
+      handlers = self.output2Handlers
+    else: 
+      handlers = self.outputHandlers
 
     try: 
       for m in self.outputHandlers: 
-        rv = rv + m.getFormattedValue(value)
+        rv += m.getFormattedValue(value)
 
       return rv
     except InvalidDate, msg:
       raise InvalidEntry, msg
 
 
-  def getFormattedInput(self, padding=""): 
+  def getFormattedInput(self, value, padding=""): 
     rv = ""
     value = self._buildDate(self.entry, 0)
 
-    self.lastInputPos = 
+#    self.lastInputPos = 
 
     print self.inputMaskLen
 
     for i in range(len(self.inputHandlers)):
       if self.inputMaskLen[i] or isinstance(self.inputHandlers[i],Literal): 
-        rv = rv + self.inputHandlers[i].getFormattedValue(value)
+        rv += self.inputHandlers[i].getFormattedValue(value)
       elif len(padding): 
-        rv = rv + padding * self.inputHandlers[i].maxLength
+        rv += padding * self.inputHandlers[i].maxLength
 
     return rv
 
@@ -266,6 +269,7 @@
     self.maxLength = 2
 
   def getFormattedValue(self, date): 
+    # TODO: Implement this mask element
     return "*" * self.maxLength
 
   def isValidEntry(self, value):
@@ -328,6 +332,7 @@
     self.maxLength = 2
 
   def getFormattedValue(self, date): 
+    # TODO: Implement this mask element
     return "*" * self.maxLength
 
   def isValidEntry(self, value):
@@ -339,6 +344,7 @@
 
 class _GSection(_gSection): 
   def getFormattedValue(self, date): 
+    # TODO: Implement this mask element
     return "*" * self.maxLength
 
 
@@ -349,6 +355,7 @@
     self.maxLength = 2
 
   def getFormattedValue(self, date): 
+    # TODO: Implement this mask element
     return "*" * self.maxLength
 
   def isValidEntry(self, value):
@@ -360,6 +367,7 @@
 
 class _JSection(_jSection): 
   def getFormattedValue(self, date): 
+    # TODO: Implement this mask element
     return "*" * self.maxLength
 
 
@@ -420,6 +428,7 @@
     self.maxLength = 2
 
   def getFormattedValue(self, date): 
+    # TODO: Implement this mask element
     return "*" * self.maxLength
 
   def isValidEntry(self, value):
@@ -431,6 +440,7 @@
 
 class _PSection(_pSection): 
   def getFormattedValue(self, date): 
+    # TODO: Implement this mask element
     return "*" * self.maxLength
 
 
@@ -466,6 +476,7 @@
     self.maxLength = 2
 
   def getFormattedValue(self, date): 
+    # TODO: Implement this mask element
     return "*" * self.maxLength
 
   def isValidEntry(self, value):
@@ -477,6 +488,7 @@
 
 class _USection(_uSection): 
   def getFormattedValue(self, date): 
+    # TODO: Implement this mask element
     return "*" * self.maxLength
 
 
@@ -487,6 +499,7 @@
     self.maxLength = 2
 
   def getFormattedValue(self, date): 
+    # TODO: Implement this mask element
     return "*" * self.maxLength
 
   def isValidEntry(self, value):
@@ -498,6 +511,7 @@
 
 class _VSection(_vSection): 
   def getFormattedValue(self, date): 
+    # TODO: Implement this mask element
     return "*" * self.maxLength
 
 
@@ -508,6 +522,7 @@
     self.maxLength = 2
 
   def getFormattedValue(self, date): 
+    # TODO: Implement this mask element
     return "*" * self.maxLength
 
   def isValidEntry(self, value):
@@ -524,6 +539,7 @@
     self.maxLength = 2
 
   def getFormattedValue(self, date): 
+    # TODO: Implement this mask element
     return "*" * self.maxLength
 
   def isValidEntry(self, value):
@@ -535,6 +551,7 @@
 
 class _XSection(_xSection): 
   def getFormattedValue(self, date): 
+    # TODO: Implement this mask element
     return "*" * self.maxLength
 
 
@@ -585,10 +602,10 @@
 
 
 if __name__ == '__main__': 
-  dates = DateMask('\\D\\a\\t\\e: A, B d, Y  \\T\\i\\m\\e: h:i:s','m.d.y')
+  dates = DateMask(r'\D\a\t\e: A, B d, Y  \T\i\m\e: h:i:s','m.d.y')
   print "processEdit1 <= %s" % dates.processEdit('071601')
   print dates.getFormattedInput("_")
   print dates.getFormattedOutput()
-  print "processEdit2 <= %s" %dates.processEdit('27',2,4)
+#  print "processEdit2 <= %s" %dates.processEdit('27',2,4)
   print dates.getFormattedInput("_")
   print dates.getFormattedOutput()
Index: gnue/gnue-common/src/FormatMasks/__init__.py
diff -u gnue/gnue-common/src/FormatMasks/__init__.py:1.1 
gnue/gnue-common/src/FormatMasks/__init__.py:1.2
--- gnue/gnue-common/src/FormatMasks/__init__.py:1.1    Mon Jul 16 00:17:24 2001
+++ gnue/gnue-common/src/FormatMasks/__init__.py        Wed Oct 10 19:24:50 2001
@@ -0,0 +1,35 @@
+#
+# This file is part of GNU Enterprise.
+#
+# GNU Enterprise is free software; you can redistribute it 
+# and/or modify it under the terms of the GNU General Public 
+# License as published by the Free Software Foundation; either 
+# version 2, or (at your option) any later version.
+#
+# GNU Enterprise is distributed in the hope that it will be 
+# useful, but WITHOUT ANY WARRANTY; without even the implied 
+# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+# PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public 
+# License along with program; see the file COPYING. If not,
+# write to the Free Software Foundation, Inc., 59 Temple Place 
+# - Suite 330, Boston, MA 02111-1307, USA.
+#
+# Copyright 2000, 2001 Free Software Foundation
+#
+# FILE:
+# FormatMasks/__init__.py
+#
+# DESCRIPTION:
+# Class that contains a sax based xml processor for GNUE forms
+#
+# NOTES:
+#
+# HISTORY:
+#
+
+
+from DateMask import DateMask
+from TextMask import TextMask
+from NumberMask import NumberMask
Index: gnue/gnuef/src/GFForm.py
diff -u gnue/gnuef/src/GFForm.py:1.122 gnue/gnuef/src/GFForm.py:1.123
--- gnue/gnuef/src/GFForm.py:1.122      Mon Oct  8 08:38:13 2001
+++ gnue/gnuef/src/GFForm.py    Wed Oct 10 19:24:50 2001
@@ -486,7 +486,7 @@
           currentvalue = currentvalue[:self._currentEntry._cursorPosition] + 
value + \
                    currentvalue[self._currentEntry._cursorPosition+1:]
       
-        self._currentEntry._cursorPosition = 
self._currentEntry._cursorPosition + 1
+        self._currentEntry._cursorPosition += 1
        self._currentEntry.processTrigger('pre-change')
         self._currentEntry.setValue(currentvalue)
        self._currentEntry.processTrigger('post-change')
Index: gnue/gnuef/src/GFObjects/GFEntry.py
diff -u gnue/gnuef/src/GFObjects/GFEntry.py:1.21 
gnue/gnuef/src/GFObjects/GFEntry.py:1.22
--- gnue/gnuef/src/GFObjects/GFEntry.py:1.21    Tue Oct  9 09:35:12 2001
+++ gnue/gnuef/src/GFObjects/GFEntry.py Wed Oct 10 19:24:51 2001
@@ -31,7 +31,7 @@
 # Copyright (c) 2000, 2001 Free Software Foundation
 #
 
-from gnue.common import GDebug
+from gnue.common import GDebug, FormatMasks
 from gnue.common import GConfig
 from GFValue import GFValue
 import string
@@ -52,6 +52,7 @@
     self.width = float(GConfig.get('widgetWidth'))
     self.typecast="text"
     self.case="mixed"
+    self.style="default"
 
     # Runtime variables
     self._oldval=""
@@ -63,6 +64,8 @@
     self._inits = [self.initialize, self.loadStartingValues]
     self._allowedValues = None
 
+    self._maskHandler = None
+
     self._rows = 1
     self._gap = 0
 
@@ -97,6 +100,20 @@
     elif self.case == 'lower':
       self._lowercase = 1
 
+    if hasattr(self,'formatmask') and len(self.formatmask): 
+      self._formatmask = self.formatmask
+      self._inputmask = self.formatmask
+      self._displaymask = self.formatmask
+
+      if hasattr(self,'inputmask') and len(self.inputmask): 
+        self._inputmask = self.inputmask
+
+      if hasattr(self,'displaymask') and len(self.displaymask): 
+        self._displaymask = self.displaymask
+
+      self._maskHandler = formatMaskHandlers[self.typecast](
+          self._formatmask, self._inputmask, self._displaymask)
+
     self._cursorPosition = len(self._oldval)
     self._block = self.findParentOfType('GFBlock')
 
@@ -137,7 +154,7 @@
   def loadStartingValues(self):
     pass
 #    value = self.getValue()
-#    if value=='' and hasattr(self, 'style') and self.style=='checkbox':
+#    if value=='' and self.style=='checkbox':
 #       value = 0
 #    self.setValue(value)
 
@@ -159,12 +176,37 @@
     #CheckBox does not work if comment following "if" block (ra3vat)
     if value == '' and self.style == 'checkbox':      value = 0
 
-    self._oldval = value
+    self._oldval = value  # TODO: Is this used anywhere?
     return value
 
 
+  #
+  # Returns a string formatted for display
+  #
+  def getDisplay(self, hasFocus=0, value=None):
+
+    if value == None: 
+      v = self.getValue()
+    else: 
+      v = value
+      if v == None: 
+        v = "" 
+
+
+    # TODO: How would format masks work w/styles other than default 
+
+    if not self._maskHandler or self.style != 'default':  
+      return str(v)
+    else: 
+      if hasFocus:
+        return self._maskHandler.getFormattedInput(v)
+      else: 
+        return self._maskHandler.getFormattedOutput(v, secondary=1)
+
+
+
   def setValue(self, value):
-    if value =='' and hasattr(self, 'style') and self.style=='checkbox':
+    if value =='' and self.style=='checkbox':
       value = 0
     self._oldval = value
     if self._block.mode == 'query':
@@ -238,3 +280,8 @@
     GDebug.printMesg (5,'Created for DropDown: %s' % self._allowedValues)
 
     return self._allowedValues
+
+
+formatMaskHandlers = { 'text':   FormatMasks.TextMask, 
+                       'number': FormatMasks.NumberMask, 
+                       'date':   FormatMasks.DateMask }
Index: gnue/gnuef/src/GFParser.py
diff -u gnue/gnuef/src/GFParser.py:1.56 gnue/gnuef/src/GFParser.py:1.57
--- gnue/gnuef/src/GFParser.py:1.56     Wed Oct 10 00:48:02 2001
+++ gnue/gnuef/src/GFParser.py  Wed Oct 10 19:24:50 2001
@@ -71,16 +71,6 @@
 
   global xmlElements
 
-    #
-    # xmlElements=
-    # {tagName: (baseClass, attributesHash, normalizeWhitespace?, parents) }
-    #
-    # attributesHash=
-    # {attrName: (required?, uniqueID?, typecast, defaultValue) }
-    #
-    # parents=  # Used by designer to generate menus
-    #   (canParentsChildrenContainTagAlso?, Tuple of Parent Tags)
-    #
   if xmlElements == None:
     from gnue.forms import GFObjects, GFLibrary, GFTrigger, GFForm
 
@@ -154,6 +144,11 @@
          'Deprecated': 'Use the external connections file format.',
          'ParentTags': ('form',) },
 
+      'datasource': { 
+         'BaseClass': GFObjects.GFDataSource,  
+         'Attributes': GDataSource.tagAttributes, 
+         'ParentTags': ('form',) },
+
       'page': {
          'BaseClass': GFObjects.GFPage,
          'Required': 1,
@@ -286,7 +281,13 @@
                   'text': {}, 
                   'number': {}, 
                   'date': {} }, 
-               'Default': 'text'},
+               'Default': 'text'}, 
+            'formatmask': { 
+               'Typecast': GTypecast.text }, 
+            'inputmask': { 
+               'Typecast': GTypecast.text }, 
+            'displaymask': { 
+               'Typecast': GTypecast.text }, 
             'value': {
                'Typecast': GTypecast.text },
             'foreign_key': {



reply via email to

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