[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue/gnuef/src GFForm.py GFLibrary.py GFParser.py
From: |
Jason Cater |
Subject: |
gnue/gnuef/src GFForm.py GFLibrary.py GFParser.py |
Date: |
Mon, 18 Jun 2001 03:02:23 -0700 |
CVSROOT: /home/cvs
Module name: gnue
Changes by: Jason Cater <address@hidden> 01/06/18 03:02:23
Modified files:
gnuef/src : GFForm.py GFLibrary.py GFParser.py
Log message:
Cleaned up a nasty recursive import problem with GFParser
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/src/GFForm.py.diff?cvsroot=OldCVS&tr1=1.101&tr2=1.102&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/src/GFLibrary.py.diff?cvsroot=OldCVS&tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/src/GFParser.py.diff?cvsroot=OldCVS&tr1=1.31&tr2=1.32&r1=text&r2=text
Patches:
Index: gnue/gnuef/src/GFForm.py
diff -u gnue/gnuef/src/GFForm.py:1.101 gnue/gnuef/src/GFForm.py:1.102
--- gnue/gnuef/src/GFForm.py:1.101 Mon Jun 11 19:22:16 2001
+++ gnue/gnuef/src/GFForm.py Mon Jun 18 03:02:23 2001
@@ -37,10 +37,10 @@
from GFObjects import *
from GFEvent import *
-from GFParser import *
from GFError import DBError
from GFTriggerError import *
from GFLibrary import *
+import GFLibrary
import GFParser
import GFTrigger
Index: gnue/gnuef/src/GFLibrary.py
diff -u gnue/gnuef/src/GFLibrary.py:1.1 gnue/gnuef/src/GFLibrary.py:1.2
--- gnue/gnuef/src/GFLibrary.py:1.1 Thu Jun 7 09:58:15 2001
+++ gnue/gnuef/src/GFLibrary.py Mon Jun 18 03:02:23 2001
@@ -48,6 +48,6 @@
if hasattr(self,'_xmltag'):
self._type = 'GF%s' % self._xmltag
if not hasattr(self,'_importclass'):
- self._importclass = GFParser.xmlFormsHandler() \
- .xmlElements[string.lower(self._type[9:])][0]
+ self._importclass = GFParser\
+ .getXMLelements()[string.lower(self._type[9:])][0]
Index: gnue/gnuef/src/GFParser.py
diff -u gnue/gnuef/src/GFParser.py:1.31 gnue/gnuef/src/GFParser.py:1.32
--- gnue/gnuef/src/GFParser.py:1.31 Sun Jun 17 19:09:44 2001
+++ gnue/gnuef/src/GFParser.py Mon Jun 18 03:02:23 2001
@@ -30,13 +30,8 @@
#
from gnue.common.GParser import *
-from gnue.common import GDataSource
+from gnue.common import GDataSource, GParser
-import GFTrigger
-from GFObjects import *
-from GFForm import *
-import GFObjects
-import GFLibrary
#######################################################
# This method loads a form from an XML file and returns
@@ -49,120 +44,153 @@
#######################################################
def loadForm(URL, app, initialize=1):
- return loadXMLObject (URL, xmlFormsHandler, 'GFForm', 'form',
+ return GParser.loadXMLObject (URL, xmlFormsHandler, 'GFForm', 'form',
initialize, attributes={"_app": app,
"_connections": app.connections})
+xmlElements = None
+def getXMLelements():
+ global xmlElements
-#######################################################
-#
-# xmlFormsHandler
-#
-# This class is called by the XML parser to
-# process the xml file.
-#
-#######################################################
-
-class xmlFormsHandler (xmlHandler):
- def __init__(self):
-
- xmlHandler.__init__(self)
-
#
# xmlElements=
- # {tagName: (baseClass, attributesHash, normalizeWhitespace?)}
+ # {tagName: (baseClass, attributesHash, normalizeWhitespace?, parents)}
#
# attributesHash=
# {attrName: (required?, uniqueID?, typecast, defaultValue)}
+ #
+ # parents= # Used by designer to generate menus
+ # (canParentsChildrenContainTagAlso?, Tuple of Parent Tags)
#
- from GFForm import *
- self.xmlElements = {
- 'form': (GFForm, { 'title': (0, 0, char, None),
- 'readonly': (0, 0, bool, 0 )}, 1),
- 'import': (GFLibrary.GFImport,
- { 'library': (1, 0, char, None),
- 'datasources': (0, 0, char, "" ),
- 'pages': (0, 0, char, "" ),
- 'triggers': (0, 0, char, "" )}, 1),
- 'database': (GFDatabase, { 'name': (1, 1, char, None),
- 'provider': (1, 0, char, None),
- 'dbname': (1, 0, char, None),
- 'host': (1, 0, char, None)}, 1),
-
- 'datasource': (GFDataSource, GDataSource.tagAttributes , 1),
- 'page': (GFPage, { 'name': (0, 1, char, None)}, 1),
- 'block': (GFBlock, { 'name': (1, 1, char, None),
- 'master': (0, 0, char, None),
- 'detail': (0, 0, char, None),
- 'rows': (0, 0, int, None),
- 'rowSpacer': (0, 0, int, None),
- 'transparentBlock':(0, 0, bool, 0),
- 'datasource': (0, 0, char, None)}, 1),
- 'label': (GFLabel, { 'name': (0, 1, char, None),
- 'text': (1, 0, char, None),
- 'alignment': (0, 0, char, None),
- 'width': (0, 0, int, None),
- 'x': (1, 0, int, None),
- 'y': (1, 0, int, None)}, 1),
- 'entry': (GFEntry, { 'name': (1, 1, char, None),
- 'field': (0, 0, char, None),
- 'height': (0, 0, int, None),
- 'width': (0, 0, int, None),
- 'max_length': (0, 0, int, None),
- 'visibleCount':(0, 0, int, None),
- 'readonly': (0, 0, bool, 0 ),
- 'uppercase': (0, 0, bool, 0 ),
- 'lowercase': (0, 0, bool, 0 ),
- 'numeric': (0, 0, bool, 0 ),
- 'hidden': (0, 0, bool, 0 ),
- 'field': (0, 0, char, None),
- 'style': (0, 0, char, None),
- 'value': (0, 0, char, None),
- 'foreign_key': (0, 0, char, None),
- 'default': (0, 0, char, None),
- 'queryDefault':(0, 0, char, None),
- 'foreign_key_description':
- (0, 0, char, None),
- 'sloppyQuery': (0, 0, char, None),
- 'x': (1, 0, int, None),
- 'y': (1, 0, int, None)}, 1),
- 'scrollbar': (GFScrollBar, { 'width': (1, 0, int, None),
- 'height': (1, 0, int, None),
- 'x': (1, 0, int, None),
- 'y': (1, 0, int, None)}, 1),
- 'box': (GFBox, { 'name': (0, 1, char, None),
- 'label': (0, 0, char, None),
- 'width': (1, 0, int, None),
- 'height': (1, 0, int, None),
- 'x': (1, 0, int, None),
- 'y': (1, 0, int, None)}, 1),
- 'button': (GFButton, { 'name': (0, 1, char, None),
- 'trigger': (0, 0, char, None),
- 'label': (0, 0, char, None),
- 'width': (1, 0, int, None),
- 'height': (1, 0, int, None),
- 'x': (1, 0, int, None),
- 'y': (1, 0, int, None)}, 1),
- 'trigger': (GFTrigger.GFTrigger,
- { 'name': (0, 1, char, None),
- 'id': (0, 0, char, None), #
DEPRECATED: Use name instead
- 'type': (0, 0, char, None),
- 'src': (0, 0, char, None),
- 'language': (0, 0, char,'python')} ,0),
- 'options': (GFObjects.GFOptions, { },
1),
- 'option': (GFOption, { 'name': (1, 0, char, None)}, 1),
- 'title': (GFOption, { 'name': (0, 0, char, 'title')},
1),
- 'name': (GFOption, { 'name': (0, 0, char, 'name')}, 1),
- 'height': (GFOption, { 'name': (0, 0, char, 'height')},
1),
- 'width': (GFOption, { 'name': (0, 0, char, 'width')},
1),
- 'author': (GFOption, { 'name': (0, 0, char, 'author')},
1),
- 'description':(GFOption, { 'name': (0, 0, char,
'description')}, 1),
- 'version': (GFOption, { 'name': (0, 0, char, 'version')},
1),
- 'tip': (GFOption, { 'name': (0, 0, char, 'tip')}, 1),
+ if xmlElements == None:
+ from gnue.forms import GFObjects, GFLibrary, GFTrigger, GFForm
+ xmlElements = {
+ 'form': ( GFForm.GFForm,
+ { 'title': (0, 0, char, None),
+ 'readonly': (0, 0, bool, 0 )},
+ 1, (0,(None))),
+ 'import': ( GFLibrary.GFImport,
+ { 'library': (1, 0, char, None),
+ 'datasources': (0, 0, char, "" ),
+ 'pages': (0, 0, char, "" ),
+ 'triggers': (0, 0, char, "" )},
+ 1, (0,('form'))),
+ 'database': ( GFObjects.GFDatabase,
+ { 'name': (1, 1, char, None),
+ 'provider': (1, 0, char, None),
+ 'dbname': (1, 0, char, None),
+ 'host': (1, 0, char, None)},
+ 1, (0,('form'))),
+ 'datasource': ( GFObjects.GFDataSource,
+ GDataSource.tagAttributes,
+ 1, (0,('form'))),
+ 'page': ( GFObjects.GFPage,\
+ { 'name': (0, 1, char, None)},
+ 1, (0,('form'))),
+ 'block': ( GFObjects.GFBlock,
+ { 'name': (1, 1, char, None),
+ 'master': (0, 0, char, None),
+ 'detail': (0, 0, char, None),
+ 'rows': (0, 0, int, None),
+ 'rowSpacer': (0, 0, int, None),
+ 'transparentBlock':(0, 0, bool, 0),
+ 'datasource': (0, 0, char, None)},
+ 1, (0,('page'))),
+ 'label': ( GFObjects.GFLabel,
+ { 'name': (0, 1, char, None),
+ 'text': (1, 0, char, None),
+ 'alignment': (0, 0, char, None),
+ 'width': (0, 0, int, None),
+ 'x': (1, 0, int, None),
+ 'y': (1, 0, int, None)},
+ 1, (0,('block','page'))),
+ 'entry': ( GFObjects.GFEntry,
+ { 'name': (1, 1, char, None),
+ 'field': (0, 0, char, None),
+ 'height': (0, 0, int, None),
+ 'width': (0, 0, int, None),
+ 'max_length': (0, 0, int, None),
+ 'visibleCount':(0, 0, int, None),
+ 'readonly': (0, 0, bool, 0 ),
+ 'uppercase': (0, 0, bool, 0 ),
+ 'lowercase': (0, 0, bool, 0 ),
+ 'numeric': (0, 0, bool, 0 ),
+ 'hidden': (0, 0, bool, 0 ),
+ 'field': (0, 0, char, None),
+ 'style': (0, 0, char, None),
+ 'value': (0, 0, char, None),
+ 'foreign_key': (0, 0, char, None),
+ 'default': (0, 0, char, None),
+ 'queryDefault':(0, 0, char, None),
+ 'foreign_key_description': (0, 0, char, None),
+ 'sloppyQuery': (0, 0, char, None),
+ 'x': (1, 0, int, None),
+ 'y': (1, 0, int, None)},
+ 1, (0,('block'))),
+ 'scrollbar': ( GFObjects.GFScrollBar,
+ { 'width': (1, 0, int, None),
+ 'height': (1, 0, int, None),
+ 'x': (1, 0, int, None),
+ 'y': (1, 0, int, None)},
+ 1, (0,('block','page'))),
+ 'box': ( GFObjects.GFBox,
+ { 'name': (0, 1, char, None),
+ 'label': (0, 0, char, None),
+ 'width': (1, 0, int, None),
+ 'height': (1, 0, int, None),
+ 'x': (1, 0, int, None),
+ 'y': (1, 0, int, None)},
+ 1, (0,('block','page'))),
+ 'button': ( GFObjects.GFButton,
+ { 'name': (0, 1, char, None),
+ 'trigger': (0, 0, char, None),
+ 'label': (0, 0, char, None),
+ 'width': (1, 0, int, None),
+ 'height': (1, 0, int, None),
+ 'x': (1, 0, int, None),
+ 'y': (1, 0, int, None)},
+ 1, (0,('block','page'))),
+ 'trigger': ( GFTrigger.GFTrigger,
+ { 'name': (0, 1, char, None),
+ 'id': (0, 0, char, None), # DEPRECATED: Use
name instead
+ 'type': (0, 0, char, None),
+ 'src': (0, 0, char, None),
+ 'language': (0, 0, char,'python')},
+ 0, (1,('form'))),
+ 'options': ( GFObjects.GFOptions,
+ {},
+ 1, (1,('form'))),
+ 'option': ( GFObjects.GFOption,
+ { 'name': (1, 0, char, None)},
+ 1, (0,('option'))),
+ 'title': ( GFObjects.GFOption,
+ { 'name': (0, 0, char, 'title')},
+ 1, (0,(None))),
+ 'name': ( GFObjects.GFOption,
+ { 'name': (0, 0, char, 'name')},
+ 1, (0,(None))),
+ 'height': ( GFObjects.GFOption,
+ { 'name': (0, 0, char, 'height')},
+ 1, (0,(None))),
+ 'width': ( GFObjects.GFOption,
+ { 'name': (0, 0, char, 'width')},
+ 1, (0,(None))),
+ 'author': ( GFObjects.GFOption,
+ { 'name': (0, 0, char, 'author')},
+ 1, (0,(None))),
+ 'description':( GFObjects.GFOption,
+ { 'name': (0, 0, char, 'description')},
+ 1, (0,(None))),
+ 'version': ( GFObjects.GFOption,
+ { 'name': (0, 0, char, 'version')},
+ 1, (0,(None))),
+ 'tip': ( GFObjects.GFOption,
+ { 'name': (0, 0, char, 'tip')},
+ 1, (0,('options'))),
}
-
-
+
+
#
# Add importable elements
# If an object needs to be importable,
@@ -174,16 +202,32 @@
for key in ('datasource','page','block','trigger','button','entry'):
name = "import-%s" % key
p = {}
- for k in self.xmlElements[key][1].keys():
- p[k] = self.xmlElements[key][1][k][:]
+ for k in xmlElements[key][1].keys():
+ p[k] = xmlElements[key][1][k][:]
p['library'] = (1, 0, char, None)
-
- self.xmlElements[name] = (GFLibrary.GFImportItem, p)
-
-
+
+ xmlElements[name] = (GFLibrary.GFImportItem, p)
+
#
# Add DataSource elements
#
- self.xmlElements.update(GDataSource.xmlElements)
+ xmlElements.update(GDataSource.xmlElements)
+
+ return xmlElements
+
+#######################################################
+#
+# xmlFormsHandler
+#
+# This class is called by the XML parser to
+# process the xml file.
+#
+#######################################################
+
+class xmlFormsHandler (GParser.xmlHandler):
+ def __init__(self):
+
+ GParser.xmlHandler.__init__(self)
+ self.xmlElements = getXMLelements()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue/gnuef/src GFForm.py GFLibrary.py GFParser.py,
Jason Cater <=