[Top][All Lists]
[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': {
- gnue gnue-common/src/FormatMasks/BaseMask.py gn...,
Jason Cater <=