|
From: <ki...@us...> - 2003-01-31 19:32:38
|
Update of /cvsroot/pymerase/pymerase/output
In directory sc8-pr-cvs1:/tmp/cvs-serv28047
Modified Files:
CreatePyTkWidgets.py
Log Message:
Now creates widgets with modes that deal with foreign key/object linking
Index: CreatePyTkWidgets.py
===================================================================
RCS file: /cvsroot/pymerase/pymerase/output/CreatePyTkWidgets.py,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** CreatePyTkWidgets.py 6 Jan 2003 22:48:03 -0000 1.9
--- CreatePyTkWidgets.py 31 Jan 2003 19:32:34 -0000 1.10
***************
*** 119,122 ****
--- 119,131 ----
print ""
+
+ def getAssociationByName(assocList, name):
+
+ for assoc in assocList:
+ if assoc.getOppositeEnd().getAttributeName(DBAPI_TRANSLATOR) == name:
+ return assoc
+ return None
+
+
###############################################
#CreateTkWidgets write function -- called by pymerase
***************
*** 151,167 ****
#Reset Grid Layout rowCounter
util.resetRowCounter()
!
for attrib in getAllAttributes(classList, myClass, DBAPI_TRANSLATOR):
!
type = attrib.getType().getSQLType()
print "Processing(%s:%s)" % (myClass.getName(TRANSLATOR_NAME), type)
print " CapsWord: %s; English: %s" % (myClass.getName(DBAPI_TRANSLATOR),
myClass.getName(TRANSLATOR_NAME))
! #Process Foriegn keys
if attrib.isPrimaryKey() or type == "serial":
print 'Ignoring Primary Key'
#Process Integers and Doubles
! if type == "integer":
code = re.sub('%VAR_ELEMENT%',
util.makeLabelIntegerEntry(attrib.getName(DBAPI_TRANSLATOR),
--- 160,213 ----
#Reset Grid Layout rowCounter
util.resetRowCounter()
!
! #Get a list of attributes which are used for associations
! assocList = myClass.getAssociationEnds().values()
! assocAttribNameList = []
! for assocEnd in assocList:
! assocAttribNameList.append(assocEnd.getOppositeEnd().getAttributeName(DBAPI_TRANSLATOR))
!
! #Process all attributes in a given class
for attrib in getAllAttributes(classList, myClass, DBAPI_TRANSLATOR):
!
type = attrib.getType().getSQLType()
+ if attrib.getName(DBAPI_TRANSLATOR) in assocAttribNameList:
+ type = "FK"
+
print "Processing(%s:%s)" % (myClass.getName(TRANSLATOR_NAME), type)
print " CapsWord: %s; English: %s" % (myClass.getName(DBAPI_TRANSLATOR),
myClass.getName(TRANSLATOR_NAME))
! #Process Primary keys
if attrib.isPrimaryKey() or type == "serial":
print 'Ignoring Primary Key'
+
+ #Process Foreign Keys
+ if type == "FK":
+ assoc = getAssociationByName(assocList, attrib.getName(DBAPI_TRANSLATOR))
+ code = util.processFkVarElement(attrib,
+ assoc.getOppositeEnd(),
+ DBAPI_TRANSLATOR,
+ code)
+ code = re.sub('%GET_FUNCTION%',
+ util.makeGetLabelIntegerEntry(attrib.getName(DBAPI_TRANSLATOR)),
+ code)
+ code = re.sub('%GET_FUNCTION%',
+ util.makeGetOptionMenu(attrib.getName(DBAPI_TRANSLATOR)),
+ code)
+ code = re.sub('%SET_FUNCTION%',
+ util.makeSetLabelEntry(attrib.getName(DBAPI_TRANSLATOR)),
+ code)
+ code = re.sub('%SET_FUNCTION%',
+ util.makeSetOptionMenu(attrib.getName(DBAPI_TRANSLATOR)),
+ code)
+ #code = re.sub('%SET_FUNCTION%',
+ # util.makeSelectOptionMenuItem(attrib.getName(DBAPI_TRANSLATOR)),
+ # code)
+ #code = re.sub('%SET_FUNCTION%',
+ # util.makeAppendOptionMenu(attrib.getName(DBAPI_TRANSLATOR)),
+ # code)
+
#Process Integers and Doubles
! elif type == "integer":
code = re.sub('%VAR_ELEMENT%',
util.makeLabelIntegerEntry(attrib.getName(DBAPI_TRANSLATOR),
***************
*** 263,266 ****
--- 309,322 ----
print "Please e-mail the above line to pym...@li..."
print ""
+
+
+ #Association Processing
+ assocList = myClass.getAssociationEnds().values()
+
+ print "ASSOCIATION ENDS:"
+ for assocEnd in assocList:
+ print " ", assocEnd.getAttributeName(DBAPI_TRANSLATOR)
+ print " ", assocEnd.getName(DBAPI_TRANSLATOR)
+ print "END ASSOCIATIONS"
#Remove '%*%'
|